JavaScript JSON 通过给定键解析而不循环

标签 javascript json

给定一个 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 use var mydata = json.parse(mydata) ... But I was hoping there was ... something like json.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/

相关文章:

javascript - 如何防止 p5.js 中的重叠

javascript - Angularjs 打开模式与图像

php - 如何在 HTML/Javascript 页面中插入 PHP 下拉列表

javascript - 验证 JSON 时 getJSON 解析错误

json - 使用 GitHub api 调用 WebRequest 失败 - "Problems parsing json"

javascript - jQuery Isotope 不会运行

javascript - 有没有办法留下阅读电子邮件的痕迹,以便稍后由同一设备上的应用程序阅读?

java - 以下样本的正确 map 格式是什么?

javascript - 从 JSON 文件中获取一组特定的键/值对

javascript - 如何将json数组对象转换为json数组