javascript - 怎样将JS中的json对象转换成PHP可以识别的json对象
本文介绍了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屋!
查看全文