繁体   English   中英

JavaScript中的复杂JSON字符串解析

[英]Complex JSON string Parsing in JavaScript

这是我的示例JSON文件,我正在尝试解析和读取值..

C = {{
    "Travel": {
        "ServiceProvider": {
            "Name": "SRS",
            "Rating": "3 stars",
            "Rates": "Nominal",
            "Features": {
                "OnlineBooking": "Yes",
                "SMS_Ticket": "No"
            },
            "UserDetails": {
                "Name": "Jack",
                "Age": "33",
                "Gender": "Male"
            }
        },
        "BusProvider": {
            "Name": "SRS",
            "Rating": "3 stars",
            "Rates": "Nominal",
            "Features": {
                "OnlineBooking": "Yes",
                "SMS_Ticket": "No"
            },
            "UserDetails": {
                "Name": "Jack",
                "Age": "33",
                "Gender": "Male"
            }
        }
    }
}

我是JS的新手,我需要以通用方式访问嵌套元素。

我无法正确提取详细信息。 即时通讯卡住了嵌套子元素。

  1. 对我来说,问题是我将永远不知道要访问它们的“键”的名称,JSON是动态的,因此我需要一种通用机制来访问嵌套的子元素,嵌套最多可以达到3 -4级。

  2. 当嵌套很深时,我们用什么符号来访问键/值对。

任何帮助,将不胜感激。

对对象进行反序列化可以做到这一点

var resultJSON = '{"name":"ricardo","age":"23"}';
var result = $.parseJSON(resultJSON);
$.each(result, function(k, v) {
    //display the key 
    alert(k + ' is the key)
}

您可以像这样递归地使用它-Link 这里的方法是一样的,只是适应您的示例

对于动态访问,您可以使用方括号表示法,即var json = {nonKnown: 1}; 现在您可以像这样访问它:var unknowPropertyName =“ nonKnown”; var value = json [unknownPropertyName];

但是,如果您甚至无法动态定义属性名称,则应使用

for(variableName in json){
  if(json.hasOwnProperty(variableName)){
    console.log(variableName);
  }
}

您应该从中得到基本的想法。 祝好运

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM