我有两个不同的(单独的) 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[0].value
来访问nid
的值
但是,当我的json响应包含在[]
中时
[
{
"test": "test",
"title": "title"
},
...
]
当我尝试test
时,我没有得到有效的表达式
有效和无效的其他示例:
通过访问data.type
来有效的,显示article
{
"data": {
"type": "article",
"id": "123",
...
}
}
无效的表达式,请尝试id[0].value
或id.value
[
{
"id": [
{
"value": 398
}
],
...
}
]
发布于 2018-05-28 20:00:57
如果需要Json字符串中的值,则可以使用json-decode
从Json中创建数组,也可以使用正则表达式从Json字符串中提取值。
发布于 2018-05-28 20:21:57
[ {...}, {...} ]
是一个jsonArray,并且
{ ..., ... }
是一个json对象。
尝试在jsonArray上使用getJSONObject(索引)方法从json数组访问json对象,然后就可以访问json对象中的值。
https://stackoverflow.com/questions/50560587
复制相似问题