Javascript 如何从顶部开始解析json字符串?

Javascript 如何从顶部开始解析json字符串?,javascript,json,node.js,parsing,Javascript,Json,Node.js,Parsing,我有一个jsonAPI,它有许多可选字段。当我收到这个对象时,我需要解析它并将数据添加到数据库中JSON.parser()似乎首先解析最内部的数据,这是一种浪费。我需要首先从最顶层开始解析 我需要做一个自定义的字符串解析器,还是有一个可用的 API示例: "AddRequest" : { "OptionalId" : "", "OptionalType" : { "Status" : "taken", "DateStart" : "21/05/20

我有一个
json
API,它有许多可选字段。当我收到这个对象时,我需要解析它并将数据添加到数据库中
JSON.parser()
似乎首先解析最内部的数据,这是一种浪费。我需要首先从最顶层开始解析

我需要做一个自定义的字符串解析器,还是有一个可用的

API示例:

"AddRequest" : {
    "OptionalId" : "",
    "OptionalType" : {
        "Status" : "taken",
        "DateStart" : "21/05/2013",
        "DateEnd" : "21/06/2013",
        "Summary" : "It was really good"
    },
    "OptionalHotels" : [
        {
            "HotelId" : "1",
            "CheckIn" : "21/05/2013", 
            "CheckOut" : "21/06/2013", 
            "Name" : "Hotel Name", 
            "Latitude" : "", 
            "Longitude" : "",
            "City" : "Toronto"
        },
        ... 
    ],
    ...
}

守则:

var jsonObject = JSON.parse(data , 
    function(k, v) {
        console.log(k + ':' + v);
    }
);

JSON.parse
的第二个参数是转换数据的函数

如果您只想访问它,那么请正常解析它,然后从返回值访问您关心的属性

var javaScriptObject = JSON.parse(data);
console.log(javaScriptObject.whateverYouWantFirst);

“首先解析最内部的数据”是什么意思?在访问整个JSON文本之前,必须由解析器对其进行解析。为什么有些键在引号中,而有些键不在引号中?你说我的“最内在的数据”是什么意思?您不能(轻松地)只解析JSON字符串的一部分。当您尝试对整个字符串调用
JSON.parse()
时会发生什么情况?@Quentin解析首先返回
状态:take
键值对,而不是
AddRequest:{…}
@andre-解析它将返回一个JavaScript对象,而不是单个键值对。(JSON和JavaScript对象都是无序的)@Quentin解析器应该在一次调用中返回从整个JSON字符串解析的JavaScript对象。你能展示你用来解析JSON的代码吗?我该如何检查可选字段?如果(obj.PotentiallyPresentOptionalField){}?@ChristopherW谢谢,undefined的值似乎为false。我刚才才知道。