javascript - 如何在使用 object.key 方法时获取 json 对象的子对象的值?

标签 javascript jquery

通过使用 api 并获得响应。作为响应,我得到了名为对象的交易中的对象列表,这些对象的计数是 19。我使用下面的函数来获取“键”和“值” ' 每个对象的。但是一些最终是对象的键有包含键和值的子对象,我已经尝试过但我无法访问它们。我在下面给出了 api 调用的响应片段。在这里我可以访问索引 0 处的对象处于事件状态但对于业务我得到了 [object object] 因为它里面有键和值,即“id”,我无法访问,我也想访问它们。

 meta: Object
       response: Object
           deals: Array[20]
                0: Object
                    active: 1
                    business: Object
                       id: 608290.....

下面是获取所有对象的键和值的函数

function getAllobjectData(data) {
    $.each(data.response.deals, function (i, deals) {
        console.log("value of index " + i);
        var keys = [],
            values = [];
        $.each(deals, function (key, value) {
            keys.push(key);
            values.push(value);
            var subkey = [],
                subvalue = [];

这部分我添加并尝试获取子对象键和值,但它没有用,我不知道这是正确的方法。

$.each(key, function (subkey, subvalue) {                          <-------------      
                    alert(subkey + ": " + subkey);                              -
                });                                                             -
                console.log('subkey ' + (i + 1) + ' is ' + subkey);             - 
                console.log('subvalue ' + (i + 1) + ' is ' + subvalue);         -
   ----------------------------------------------------------------------------- 
            });
            console.log('keys ' + (i + 1) + ' is ' + subkey);
            console.log('values ' + (i + 1) + ' is ' + subvalue);

        });
    }

最佳答案

优雅地解决这个问题的一种方法是使用 recursion .

这是一个函数示例,它将以 [keyPath, value] 的形式返回数组数组:

演示:http://jsfiddle.net/RQuBD/1/

function collectSimpleValues(data, values, path) {  
    path = path || '';
    values = values || [];

    Object.keys(data).forEach(function (k) {
        var p = path + k, v = data[k];

        if (typeof v === 'object') collectSimpleValues(v, values, p + '.');
        else values.push([p, v]);
    });

    return values;
}

关于javascript - 如何在使用 object.key 方法时获取 json 对象的子对象的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16564606/

相关文章:

javascript - 由于发布数据中的关键字,jQuery Ajax 在发布数据时失败

jQuery 和 Table,抓取 NTH 列中的每个单元格

javascript - 一旦单个元素换行,其余元素也会换行

javascript - 带有 FloatingActionButton 组件的 React-Native-Popup-Menu 无法使用 MenuTrigger 触发

javascript - 从查询字符串中获取 url 并将其加载到 div 中

javascript - jquery ui 可调整 float 元素的大小。

jquery - jquery中如何获取元素的子数组

javascript - 如何避免 undefined 不是一个函数

javascript - html5不兼容浏览器测试

javascript - 带 ng-repeat 的字符数组