簡體   English   中英

如何在具有動態鍵值對的javascript(ReactNative)中解析以下json?

[英]How to parse the following json in javascript (ReactNative) having dynamic key value pair?

我有以下來自 API 的 JSON 響應。

{
    "status": true,
    "cakes": {
        "7689": {
            "id": 7689,
            "flavor": "chocolate",
            "cookDetails": {
                "id": 101,
                "firstName": "Name1",
                "lastName": "LastName1"
            }
        },
        "7690": {
            "id": 7690,
            "flavor": "vanilla",
            "cookDetails": {
                "id": 102,
                "firstName": "Name2",
                "lastName": "LastName2"
            }
        }
    }
}

我用來解析這個 JSON 的語言:Javascript

框架:ReactNative

我如何解析它(注意:在解析之前我不知道蛋糕中 id 的值)?

PS:框架的新手。 非常感謝。

我對此不確定,但我認為您想以某種方式訪問​​ id ex 7689cake而不知道其id值。 所以你有幾種方法來處理它。 其中之一是使用for...in循環遍歷它們:

for(var cakeId in response.cakes){
    var cake = response.cakes[cakeId];

    console.log(cake);
    // Do whatever you want with your cake
}

如果我誤解了你,我很抱歉。 如果是這樣,請通過向我們提供您想要實現的一些示例來澄清問題。

創建一個函數

function getCake(obj,key){
let cake = obj['cakes'][key];
return cake;
}

打電話

let cakes = {
    "status": true,
    "cakes": {
        "7689": {
            "id": 7689,
            "flavor": "chocolate",
            "cookDetails": {
                "id": 101,
                "firstName": "Name1",
                "lastName": "LastName1"
            }
        },
        "7690": {
            "id": 7690,
            "flavor": "vanilla",
            "cookDetails": {
                "id": 102,
                "firstName": "Name2",
                "lastName": "LastName2"
            }
        }
    }
}

getCake(cakes,'7689');

試試這個

const cakesObject = {
    "status": true,
    "cakes": {
        "7689": {
            "id": 7689,
            "flavor": "chocolate",
            "cookDetails": {
                "id": 101,
                "firstName": "Name1",
                "lastName": "LastName1"
            }
        },
        "7690": {
            "id": 7690,
            "flavor": "vanilla",
            "cookDetails": {
                "id": 102,
                "firstName": "Name2",
                "lastName": "LastName2"
            }
        }
    }
};

// this is required only if cakesObject is strigified
const { cakes } = JSON.parse(cakesObject);

const cakesArray = [..Object.values(cakes)];

cakesArray.forEach(cake => {
    const { id } = cake;
    // write further logic
})

暫無
暫無

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

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