【问题标题】:How to read array inside JSON Object this is inside another array如何在 JSON 对象中读取数组,这是在另一个数组中
【发布时间】:2023-04-04 08:03:01
【问题描述】:

我是 JSON 的新手,我正在解析一个 JSON 对象,但我不得不读取一个对象内的数组元素,这又是另一个数组中的元素。 这是我的 JSON

   {
"DefinitionSource": "test",
"RelatedTopics": [
    {
        "Result": "",
        "Icon": {
            "URL": "https://duckduckgo.com/i/a5e4a93a.jpg"
        },
        "FirstURL": "xyz",
        "Text": "sample."
    },
    {
        "Result": "",
        "Icon": {
            "URL": "xyz"
        },
        "FirstURL": "xyz",
        "Text": "sample."
    },
    {
        "Topics": [
            {
                "Result": "",
                "Icon": {
                    "URL": "https://duckduckgo.com/i/10d02dbf.jpg"
                },
                "FirstURL": "https://duckduckgo.com/Snake_Indians",
                "Text": "sample"
            },
            {
                "Result": "sample",
                "Icon": {
                    "URL": "https://duckduckgo.com/i/1b0e4eb5.jpg"
                },
                "FirstURL": "www.google.com",
                "Text": "xyz."
            }
        ]
    }
]
}

这里我需要从 RelatedTopics 数组和 Topics 数组中读取 URL、FIRSTURL 和 Text.. 谁能帮我。提前致谢。

【问题讨论】:

  • 我能够读取 RelateTopics[] 数组中的值,但我没有得到如何读取 Topics[] 数组中的值
  • 先在这里jsonlint.org测试你的json然后发布到这里。

标签: javascript json parsing


【解决方案1】:

像这样循环遍历json数组,

for(var i=0; i< RelatedTopics.length;i++){

     if($.isArray(RelatedTopics[i])){
       for(var j=0; j< RelatedTopics[i].Topics.length;j++){
        var topics=RelatedTopics[i].Topics[j];
        var text = topics.Text;
        var firsturl = topics.Firsturl;
        var url = topics.Icon.url;
       }

     }
}

如果你想把它推入一个数组变量

【讨论】:

  • 我想在遍历 RelatedTopics[] 的同时迭代 Topics[]。
【解决方案2】:

类似的东西

function (json) {
    json.RelatedTopics.forEach(function (element) {
        var url = element.Icon ? element.Icon.URL : 'no defined';
        var firstURL = element.FirstURL ? element.FirstURL : 'no defined';
        var text = element.Text ? element.Text : 'no defined';
        alert("URL: " + url + "\nFirstURL: " + firstURL + "\nText: " + text);

        if (element.Topics)
        {
            element.Topics.forEach(function (topicElement) { 
                alert("Topics - \n" + "URL: " + topicElement.Icon.URL + "\nFirstURL: " + topicElement.FirstURL + "\nText: " + topicElement.Text);
            }); 
        }
    });
};

Look fiddle example

【讨论】:

    猜你喜欢
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-24
    • 2018-05-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多