簡體   English   中英

訪問嵌套json對象時的值替換

[英]Value substitution while accessing nested json object

這是我的json對象

{
  "a1": {
    "b1": {
      "name": "Tim",
      "status": "Completed"
     }
     "c1" {
       "field1": "name",
       "field2": "status"
     }
  }

我需要通過獲取c1內的字段鍵來訪問值Tim。 例如,我需要獲取a1.c1.field1的值,該值將給我提供值name1,然后我需要通過a1.b1。(a1.c1.field1的值)訪問值tim。做這個。 有人可以給出實現此目的的可能方法嗎?

您的JSON有點差了,因此在下面已更正。 這是一個如何在c1對象(在a1對象中)中檢索field1值的示例。

$(document).ready(function () {
    var json = {
        "a1":
        {
            "b1":
            {
                "name": "Tim",
                "status": "Completed"
            },
            "c1":
            {
                "field1": "name",
                "field2": "status"
            }
        }
    };


console.log(json.a1.b1.name); // returns Tim
// or
console.log(json["a1"]["b1"]["name"]); // returns Tim

});

這是您要找的東西嗎?

您可以使用方括號進行訪問。 利用您提供的數據,

var data = {
        "a1": {
            "b1": {
                "name": "Tim",
                "status": "Completed"
            },
            "c1":{
                "field1": "name",
                "field2": "status"
            }
    }
};

您可以通過訪問來滿足您的要求。

data.a1.b1[data.a1.c1.field1]

一種明顯的方法是使用a1.c1.field1括號表示法將a1.c1.field1用作屬性訪問器。

var obj = {
    "a1": {
        "b1": {
            "name": "Tim",
            "status": "Completed"
        },

        "c1": {
            "field1": "name",
            "field2": "status"
        }
    }
};

console.log(obj.a1.c1.field1); // 'name'
console.log(obj.a1.b1[obj.a1.c1.field1]); // 'Tim'

或者更清晰地

var key = obj.a1.c1.field1;
var value = obj.a1.b1[key];
console.log(value); // 'Tim'
var a1 = 
{
    "b1":
    {
        "name": "Tim",
        "status": "Completed"
    },
    "c1":
    {
        "field1": "name",
        "field2": "status"
    }
};
console.log(a1.b1[a1.c1.field1]);

還要修復json中的錯誤;)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM