这是我的示例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的新手,我需要以通用的方式访问嵌套元素。
我无法正确提取细节。我卡住了访问嵌套子元素。
对我来说,问题是我不会总是知道“key”的名称来获取它们,JSON将是动态的,因此我需要一个通用机制来访问嵌套的子元素。嵌套可以去<至少3-4级。
当嵌套深度时,我们使用什么表示法来访问键/值对。
任何帮助都将不胜感激。
答案 0 :(得分:0)
绝望你的对象你可以做到这一点
var resultJSON = '{"name":"ricardo","age":"23"}';
var result = $.parseJSON(resultJSON);
$.each(result, function(k, v) {
//display the key
alert(k + ' is the key)
}
你可以使用这样的递归场景来做到这一点 - Link Here 方式也适合你的例子
答案 1 :(得分:0)
对于动态访问,您可以使用括号表示法var json = {nonKnown: 1};
,现在您可以像这样访问它:
var unknowPropertyName =“nonKnown”;
var value = json [unknownPropertyName];
但是如果你甚至不能动态定义属性的名称,那么你应该使用
for(variableName in json){
if(json.hasOwnProperty(variableName)){
console.log(variableName);
}
}
你应该从中得到基本的想法。祝你好运