【发布时间】:2018-05-28 06:48:35
【问题描述】:
我有两个不同(单独)的 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时,我没有得到一个有效的表达方式
其他有效和无效的例子:
VALID通过访问data.type,显示article
{
"data": {
"type": "article",
"id": "123",
...
}
}
INVALID 表达式,试过id[0].value 或id.value
[
{
"id": [
{
"value": 398
}
],
...
}
]
【问题讨论】: