JavaScript中的复杂JSON字符串解析
这是我的示例JSON文件,我正在尝试解析和读取这些值JavaScript中的复杂JSON字符串解析,javascript,jquery,json,parsing,Javascript,Jquery,Json,Parsing,这是我的示例JSON文件,我正在尝试解析和读取这些值 C = {{ "Travel": { "ServiceProvider": { "Name": "SRS", "Rating": "3 stars", "Rates": "Nominal", "Features": { "OnlineBooking": "Yes",
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非常陌生,需要以通用方式访问嵌套元素
我无法正确提取细节。我无法访问嵌套的子元素
任何帮助都将不胜感激。在对您的对象进行理想化之后,您可以这样做
var resultJSON = '{"name":"ricardo","age":"23"}';
var result = $.parseJSON(resultJSON);
$.each(result, function(k, v) {
//display the key
alert(k + ' is the key)
}
你可以像这样用递归的方式来做-
方法是一样的,只需适应您的示例对于动态访问,您可以使用括号表示法,即
var json={nonKnown:1};
现在您可以这样访问它:
var unknowPropertyName=“nonKnown”;
var value=json[unknownPropertyName]
但若您甚至不能动态定义属性的名称,那个么您应该使用
for(variableName in json){
if(json.hasOwnProperty(variableName)){
console.log(variableName);
}
}
你应该从中得到基本的想法。祝你好运你打算如何显示这些元素?通过警报?我实际上需要用这些JSON构建一个对象。我添加警报只是为了举例。参考我不明白,在
var Data=JSON.parse(c)之后;
数据将包含所有易于访问的内容(例如,Data.Travel.BusProvider.Name==='SRS'
)。为什么需要另一个解析方法?可能是重复的--您已经问过这个问题,它以重复的形式关闭。在另一个问题中,它解释了如何在中使用for…对对象进行迭代。不过,我将更新它,以提及递归。