给定一个 JSON 字符串:
{
"__ENTITIES": [
{
"__KEY": "196",
"__STAMP": 1,
"ID": 196,
"firstName": "a",
"middleName": "b",
"lastName": "c",
"ContactType": {},
"addressCollection": {
"__deferred": {
"uri": "/rest/Contact(196)/addressCollection?$expand=addressCollection"
}
},
"__ERROR": [
{
"message": "Cannot save related entity of attribute \"ContactType\" for the entity of datastore class \"Contact\"",
"componentSignature": "dbmg",
"errCode": 1537
}
]
}
]
}
有没有办法只获取__ERROR
记录,我知道我可以使用
var mydata = json.parse(mydata)
然后从mydata
对象中查找。但我希望有一种方法可以只返回 ERROR
字段,比如
json.parse(mydata, "__ERROR")
并且仅获取 __ERROR
字段中的信息,而不将整个 JSON 字符串转换为对象
最佳答案
"Is there a method to get just the
__ERROR
record, I know I can usevar mydata = json.parse(mydata)
... But I was hoping there was ... something likejson.parse(mydata, "__ERROR")
"
可能有库可以执行此操作,但没有内置任何内容。您需要编写以所需数据为目标的代码。
最接近的方法是将 reviver 函数传递给 JSON.parse
。
var errors = [];
var mydata = JSON.parse(mydata, function(key, val) {
if (key === "__ERROR")
errors.push(val);
return val
});
关于JavaScript JSON 通过给定键解析而不循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14504600/