【发布时间】:2017-10-29 14:00:44
【问题描述】:
我的输入文件看起来像这样:
{"name": "foo"}{"name": "bar"}
如何解析?
【问题讨论】:
-
不是一个有效的 json
-
我知道,但我能以某种方式将其转换为有效的 json 并解析它吗? @PruthvirajChudasama
我的输入文件看起来像这样:
{"name": "foo"}{"name": "bar"}
如何解析?
【问题讨论】:
如果您确定单个 JSON 是有效的,您可以尝试将其转换为 JSON 对象数组,如下所示:
$data = '{"name": "foo"}{"name": "bar"}';
$data = str_replace('}{', '},{', $data);
$data = '[' . $data . ']';
// Now it's valid
// [{"name": "foo"},{"name": "bar"}]
由于}{ 在 JSON 中始终无效,因此可以肯定地说,它不会影响您的数据。
【讨论】:
有几种方法可以解析 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"}]
【讨论】: