Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP(Laravel)中解析具有多个JSON的文件?_Php_Json_Laravel - Fatal编程技术网

如何在PHP(Laravel)中解析具有多个JSON的文件?

如何在PHP(Laravel)中解析具有多个JSON的文件?,php,json,laravel,Php,Json,Laravel,我的输入文件如下所示: {"name": "foo"}{"name": "bar"} $data = '{"name": "foo"}{"name": "bar"}'; $data = str_replace('}{', '},{', $data); $data = '[' . $data . ']'; // Now it's valid // [{"name": "foo"},{"name": "bar"}] 如何解析它?有几种方法可以解析像这样的json对象。。但是你必须知道这个物体

我的输入文件如下所示:

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

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

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

如何解析它?

有几种方法可以解析像这样的json对象。。但是你必须知道这个物体的确切结构

一种方法是迭代每个子项

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”}]

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

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

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

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

由于}{在JSON中总是无效的,所以可以肯定地说,它不会影响您的数据。

不是有效的JSON我知道这一点,但我可以将其转换为有效的JSON并进行解析吗?@pruthvirajchudasamah谢谢@JuhG。就是这样。