我有一个像这样的json文件:
[{
city: "myCity",
lat: 11.1111,
format: "etc",
lng: 1.11,
street: "mystreet",
hours: [{
A: "0230",
B: "2200",
C: "16-04-2012"
}, {
A: "0130",
B: "2200",
C: "11-04-2012"
}, {
A: "0230",
B: "2200",
C: "18-04-2012"
}, {
A: "0130",
B: "2200",
C: "12-04-2012"
}, {
A: "0230",
B: "2200",
C: "20-04-2012"
}, {
A: "0130",
B: "2200",
C: "13-04-2012"
}, {
A: "0230",
B: "2200",
C: "22-04-2012"
}, {
A: "0130",
B: "2200",
C: "14-04-2012"
}, {
A: "0230",
B: "2200",
C: "24-04-2012"
}, {
A: "0130",
B: "2200",
C: "15-04-2012"
}, {
A: "0230",
B: "2200",
C: "26-04-2012"
}, {
A: "0130",
B: "2200",
C: "16-04-2012"
}, {
A: "0230",
B: "2200",
C: "28-04-2012"
}, {
A: "0130",
B: "2200",
C: "17-04-2012"
}],
housenumber: "12"
}]
Firebug解决这个问题没有问题。它说“小时”是一个对象,其中包含一些包含F,U和D的对象。但我不能用常规的php解析器解析它。我几乎把它改成了XML,但这会花费我很多时间,如果firebug可以处理它,必须有一些可以处理这种格式的解析器!
答案 0 :(得分:2)
$obj = json_decode($json);
答案 1 :(得分:1)
我确定这是重复的,但找不到它。而且由于评论被忽略了,我只是再次将其添加为答案。
如果您需要解码Javascript表达式(它没有JSON所要求的关键引号),您可以使用:
http://pear.php.net/package/Services_JSON
它有一些回退逻辑来处理不带引号的键
http://include-once.org/p/upgradephp/#upgrade.php.prefixed
up_json_decode($json, FALSE, 512, JSON_PARSE_JAVASCRIPT)
作为不可取的替代方案,有一些正则表达式和字符串修补解决方法可用于预处理不带引号的密钥。