【问题标题】:How to parse this json with php? [closed]如何用php解析这个json? [关闭]
【发布时间】:2012-05-01 11:24:31
【问题描述】:

我有一个这样的 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 可以处理,一定有一些解析器可以处理这种格式!

【问题讨论】:

  • print_r(json_decode($json)) 想出什么?
  • 这可以通过一些基础研究来完成。 Google 是您的朋友。
  • PEAR Services_Json 可以解析它,upgradephp 的 json_decode 也可以。
  • 您拥有的不是有效的JSON 格式
  • Json_decode 不起作用(当我说“常规 php 解析器”时,这是我当然尝试过的事情之一)。所以就像巴巴下面说的: var_dump(json_decode($json));将是空的......我可以想象它不是 JSON,另一方面,它不是 Json 有什么区别?对不起,我之前尝试过的简要说明。

标签: php json parsing


【解决方案1】:

我确定这是重复的,但找不到。由于 cmets 被忽略,我将再次添加它作为答案。

如果您需要解码 Javascript 表达式(它没有 JSON 需要的关键引号),您可以使用:

作为不明智的选择,有一些正则表达式和字符串修补解决方法可用于预处理未引用的键。

【讨论】:

  • 第二个效果很好!
【解决方案2】:
$obj = json_decode($json);

http://php.net/json-decode

【讨论】:

  • 不是 JSON。这是一个 Javascript 表达式。
  • JSON = JavaScript-Object-Notation
  • var_dump(json_decode($json)); 将为 null ...这不是 JSON
  • 这不起作用。我不能将这个答案降级。
猜你喜欢
  • 1970-01-01
  • 2021-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-04
相关资源
最近更新 更多