我有两个不同的(单独的)json格式响应,我正在搜索每个都有值的元素。
使用此方法评估表达式是否有效:
public function evaluate(Json $json, $expression)
{
if ($this->evaluationMode === 'javascript') {
$expression = str_replace('->', '.', $expression);
}
try {
return $json->read($expression, $this->propertyAccessor);
} catch (\Exception $e) {
throw new \Exception(sprintf('Failed to evaluate expression "%s"', $expression), 0, $e);
}
}
一个例子以花括号开头,我相信object。
{
"nid": [
{
"value": 10278
}
],
...
}
我可以通过输入nid
nid[0].value
值
但是,当我有一个json响应包含在[]
:
[
{
"test": "test",
"title": "title"
},
...
]
当我尝试test
有效且无效的其他示例:
访问data.type
有效,显示article
{
"data": {
"type": "article",
"id": "123",
...
}
}
无效表达式,已尝试id[0].value
或id.value
[
{
"id": [
{
"value": 398
}
],
...
}
]
答案 0 :(得分:0)
如果您需要来自Json字符串的值,那么您可以使用json-decode
从Json创建数组,或者您可以使用正则表达式从Json字符串中提取值。
答案 1 :(得分:0)
[
{...},
{...}
]
是jsonArray和
{
...,
...
}
是一个json对象。
尝试使用jsonArray上的getJSONObject(index)方法从json数组访问json对象,然后可以访问json对象中的值。