【问题标题】:How to parse a file with a multiple JSONs in PHP(Laravel)?如何在 PHP(Laravel) 中解析具有多个 JSON 的文件?
【发布时间】:2017-10-29 14:00:44
【问题描述】:

我的输入文件看起来像这样:

{"name": "foo"}{"name": "bar"}

如何解析?

【问题讨论】:

  • 不是一个有效的 json
  • 我知道,但我能以某种方式将其转换为有效的 json 并解析它吗? @PruthvirajChudasama

标签: php json laravel


【解决方案1】:

如果您确定单个 JSON 是有效的,您可以尝试将其转换为 JSON 对象数组,如下所示:

$data = '{"name": "foo"}{"name": "bar"}';

$data = str_replace('}{', '},{', $data);
$data = '[' . $data . ']';

// Now it's valid
// [{"name": "foo"},{"name": "bar"}]

由于}{ 在 JSON 中始终无效,因此可以肯定地说,它不会影响您的数据。

【讨论】:

  • 谢谢@JuhG。就是这样。
【解决方案2】:

有几种方法可以解析 json 对象,例如 this .. 但您必须知道该对象的确切结构 ..

一种方法是迭代每个孩子..

foreach($jsonObj as $obj)
{
    // access my name using
    $obj->name;
    $obj->someotherfield
    // or iterate again .. assuming each object has many more attribute
    foreach($obj as $key => $val)
    {
        //access my key using
        $key
        // access my value using
        $val
    }
}

还有很多其他方法可以做到这一点......而且,一个有效的 json 就像[{"name": "foo"},{"name": "bar"}]

【讨论】:

    猜你喜欢
    • 2017-04-03
    • 2017-04-10
    • 2018-10-30
    • 1970-01-01
    • 1970-01-01
    • 2012-09-09
    • 2019-09-03
    相关资源
    最近更新 更多