簡體   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