简体   繁体   English

处理多维json数组

[英]Handle multidimensional json array

How can I access the key and values of this object? 如何访问该对象的键和值?

{
  "chat_data": {
    "nickname": "somevalue",
    "items": {
        "FncZ9Q": [{
            "key1": "value1",
            "key2": "value2",
            "key3": "value3",
            "key4": "value4",
            "key5": "value5"
        }, {
            "key1": "value1",
            "key2": "value2",
            "key3": "value3",
            "key4": "value4",
            "key5": "value5"
        }, {
            "key1": "value1",
            "key2": "value2",
            "key3": "value3",
            "key4": "value4",
            "key5": "value5"
        }],
        "GYDjsA": [{
            "key1": "value1",
            "key2": "value2",
            "key3": "value3",
            "key4": "value4",
            "key5": "value5"
        }, {
            "key1": "value1",
            "key2": "value2",
            "key3": "value3",
            "key4": "value4",
            "key5": "value5"
        }]
    }
  }
}

I tried some techniques but I don't know how I solve this issue by myself. 我尝试了一些技巧,但是我不知道自己如何解决这个问题。 Here is my ajax call where the data should be managed. 这是我的ajax调用,应该在其中管理数据。

$.ajax({
    url: "/dataUrl",
    type: "post",
    cache: false,
    dataType: 'json',
    success: function (data) {
        for (var key in data.chat_data.items) {
            var obj = data.chat_data.items[key];
            $.each(data.chat_data.items, function (i, value) {
                console.log('Value of ' + i + ' is : ' + value);
            })
            // ...
        }
    }
});

I hope someone can help me out. 我希望有人能帮助我。 Regards Sascha 问候萨沙

Loop. 环。 Loop. 环。 And loop one more time. 再循环一次。

 var data = JSON.parse('{"chat_data":{"nickname":"somevalue","items":{"FncZ9Q":[{"key1":"value1","key2":"value2","key3":"value3","key4":"value4","key5":"value5"},{"key1":"value1","key2":"value2","key3":"value3","key4":"value4","key5":"value5"},{"key1":"value1","key2":"value2","key3":"value3","key4":"value4","key5":"value5"}],"GYDjsA":[{"key1":"value1","key2":"value2","key3":"value3","key4":"value4","key5":"value5"},{"key1":"value1","key2":"value2","key3":"value3","key4":"value4","key5":"value5"}]}}}'); for (var key in data.chat_data.items) { var obj = data.chat_data.items[key]; log('Item "' + key + '":'); for (var index in obj) { var obj2 = obj[index], list = []; for (var prop in obj2) { list.push('"' + prop + '": "' + obj2[prop] + '"'); } log(' Object at index ' + index + '=> ' + list.join(', ')); } } function log(txt){ document.body.innerHTML += '<pre>' + txt + '</pre>'; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 

You have to use three nested loops, like that: 您必须使用三个嵌套循环,如下所示:

for (const i in data.chat_data.items) {
  for (const j of data.chat_data.items[i]) {
    for (const key in j) {
      const value = j[key]
      console.log(key, value)
    }
  }
}

have you tried underscorejs it is easy to install and use 您是否尝试过underscorejs,它易于安装和使用

_.allKeys(object)

Retrieve all the names of object's own and inherited properties. 检索对象自己的和继承的属性的所有名称。

hope it helps 希望能帮助到你

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM