javascript - 怎样将JS中的json对象转换成PHP可以识别的json对象

查看:100
本文介绍了javascript - 怎样将JS中的json对象转换成PHP可以识别的json对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

{
  a: {
    b: '1',
    c: '2',
    d: '3'
  },
  e: {
    f: '4',
    g: '5',
    h: '6'
  },
  i: [
    {
      j: '7',
      k: '8',
      l: '9'
    },
    {
      m: '10',
      n: '11',
      o: '12'
    },
    {
      p: '13',
      q: '14 ',
      r: '15'
    }
  ],
  s: '16',
  t: '17',
  u: '18',
  v: false,
  w: 'final',
  x: '',
  y: true,
  z: true
}

这一段是JS可以识别的JSON对象,怎样让PHP也可以识别?

解决方案

你需要先将js对象转换为json,再使用json_decode函数转为php对象。

<?php

$str = <<<STR
{
  a: {
    b: '1',
    c: '2',
    d: '3'
  },
  e: {
    f: '4',
    g: '5',
    h: '6'
  },
  i: [
    {
      j: '7',
      k: '8',
      l: '9'
    },
    {
      m: '10',
      n: '11',
      o: '12'
    },
    {
      p: '13',
      q: '14 ',
      r: '15'
    }
  ],
  s: '16',
  t: '17',
  u: '18',
  v: false,
  w: 'final',
  x: '',
  y: true,
  z: true
}
STR;

$str = preg_replace(["/([a-zA-Z_]+[a-zA-Z0-9_]*)\s*:/", "/:\s*'(.*?)'/"], ['"\1":', ': "\1"'], $str);
var_dump($str);
var_dump(json_decode($str));

输出为:

string(418) "{
  "a": {
    "b": "1",
    "c": "2",
    "d": "3"
  },
  "e": {
    "f": "4",
    "g": "5",
    "h": "6"
  },
  "i": [
    {
      "j": "7",
      "k": "8",
      "l": "9"
    },
    {
      "m": "10",
      "n": "11",
      "o": "12"
    },
    {
      "p": "13",
      "q": "14 ",
      "r": "15"
    }
  ],
  "s": "16",
  "t": "17",
  "u": "18",
  "v": false,
  "w": "final",
  "x": "",
  "y": true,
  "z": true
}"
object(stdClass)#2 (11) {
  ["a"]=>
  object(stdClass)#1 (3) {


    ["b"]=>
    string(1) "1"
    ["c"]=>
    string(1) "2"
    ["d"]=>
    string(1) "3"
  }
  ["e"]=>
  object(stdClass)#3 (3) {
    ["f"]=>
    string(1) "4"
    ["g"]=>
    string(1) "5"
    ["h"]=>
    string(1) "6"
  }
  ["i"]=>
  array(3) {
    [0]=>
    object(stdClass)#4 (3) {
      ["j"]=>
      string(1) "7"
      ["k"]=>
      string(1) "8"
      ["l"]=>
      string(1) "9"
    }
    [1]=>
    object(stdClass)#5 (3) {
      ["m"]=>
      string(2) "10"
      ["n"]=>
      string(2) "11"
      ["o"]=>
      string(2) "12"
    }
    [2]=>
    object(stdClass)#6 (3) {
      ["p"]=>
      string(2) "13"
      ["q"]=>
      string(3) "14 "
      ["r"]=>
      string(2) "15"
    }
  }
  ["s"]=>
  string(2) "16"
  ["t"]=>
  string(2) "17"
  ["u"]=>
  string(2) "18"
  ["v"]=>
  bool(false)
  ["w"]=>
  string(5) "final"
  ["x"]=>
  string(0) ""
  ["y"]=>
  bool(true)
  ["z"]=>
  bool(true)
}

这篇关于javascript - 怎样将JS中的json对象转换成PHP可以识别的json对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆