我正在尝试解析JSON数据,但当json_decode()
时,var_dump()
将值显示为null
。以下是我的程序:
<?php
$json='_variable_1461092903017=[ {
message:"success",
data1:{
datalist:[
{field1:"value1",field2:"value2"} ,
{field1:"value1",field2:"value2"} ,
{field1:"value1",field2:"value2"}
]
},
data2:[ {
Date:"20 Apr 2016",
details:[
{Code:"123",name:"xyz"},
{Code:"456",name:"abc"},
],
},
{
Date:"21 Apr 2016",
details:[
{Code:"123",name:"xyz"},
{Code:"456",name:"abc"},
],
},
{
Date:"22 Apr 2016",
details:[
{Code:"123",name:"xyz"},
{Code:"456",name:"abc"},
],
}
]}
]';
$json_data = json_decode($json);
var_dump($json_data);
?>
就像其他人说的那样,这是无效的JSON
您可以使用JSON Linter进行调试http://jsonlint.com
一个很酷的有效JSON铁路图:
http://www.json.org
这应该是你想要的(我没有执行):
<?php
$json='[{
"message" :"success",
"data1":{
"datalist" :[
{ "field1":"value1","field2":"value2"},
{"field1":"value1","field2":"value2"},
{"field1":"value1","field2":"value2"}
]
},
"data2":[ {
"Date":"20 Apr 2016",
"details":[
{"Code":"123","name":"xyz"},
{"Code":"456","name":"abc"}
]
},
{
"Date":"21 Apr 2016",
"details":[
{"Code":"123","name":"xyz"},
{"Code":"456","name":"abc"}
]
},
{
"Date":"22 Apr 2016",
"details":[
{"Code":"123","name":"xyz"},
{"Code":"456","name":"abc"}
]
}
]}
]';
$json_data = json_decode($json);
var_dump($json_data);
JSON:中的错误
你需要双重报价你的钥匙:
{
"key": "value"
}
不是:
{
key: "value"
}
在关闭数组括号]
之后,您将添加一个,
应该是这样的:
{
"datalist": [ "blah", "blah"]
}
不是:
{
"datalist": [ "blah", "blah"],
}
数组中的最后一个元素后面不应该有逗号:
{
"datalist": [{"key1":"value1", {"key2": "value2"}]
}
不是:
{
"datalist": [{"key1":"value1", {"key2": "value2"},]
}