【问题标题】:how to browse a javascript object如何浏览 javascript 对象
【发布时间】:2014-02-22 21:27:08
【问题描述】:

我是 jQuery 新手。以下是包含 json 字典的 data 变量。

{
   "user":null, 
   "currency":"EUR",
   "balance":0,
   "translist": [ 
       { "trans1":"something","trans2":"something2" }
   ]
}

我的 jQuery 方法从 Rest GET 调用接收到一个 json/Javascript object

success: function (data){    
        for(x in data) {
            console.log(x + ':   ' + data[x]);
        }       
    });

是否有任何库可以帮助解析/遍历此 json 对象并获取某种对象列表?我想检查一些键及其各自的值。问题是我不需要列表中的所有键和值,而且一些值可以为空,这使我无法应用我使用 SO 找到的一些解决方案。

或者通常是在success函数里面直接开始打印HTML比较常见?

编辑:例如,如果它是 java,它将是一个 Map,我将使用迭代器遍历并查看/分析地图值,并使用我想要的值创建一些数组列表。 jQuery 中的等价物是什么?

【问题讨论】:

  • 你不需要任何库来进入一个 js 对象。什么访问/迭代对您来说是个问题?
  • 您到底想对 Objects 属性做什么
  • "我的 JQuerry 方法接收到一个 Json "object" " — 没有这样的东西,它只是一个 JavaScript 对象。
  • @Quentin +1 我再也看不到那些了...
  • 您在 ] 之前还缺少一个 }

标签: javascript jquery html json


【解决方案1】:

例如,如果它是 java,它将是一个 Map,我会使用一个 遍历并查看/分析地图值并创建的迭代器 一些带有我想要的值的数组列表。那相当于什么 在 jQuery 中?

Any javascript object can be seen as an associative map.

例如,您可以通过data['currency'] 直接访问货币。

你也可以建立一个数组:

var a = [];
for (var key in data) {
    a.push({key:key, value:data[key]});
}

您还可以构建一些 HTML 并将函数应用于数据:

$(document.body).append($(
   '<table>' + a.map(function(v){
      return '<tr><td>'+v.key+'</td><td>'+v.value+'</td></tr>'
   }).join('')+'</table>'
));

Demonstration

使用 jQuery 可以使相同的迭代更简单(直接从 data 工作):

$(document.body).append($(
   '<table>' + $.map(data, function(value,key){
      return '<tr><td>'+key+'</td><td>'+value+'</td></tr>'
   }).join('')+'</table>'
));

Demonstration

【讨论】:

  • 如何获取交易的子数组元素?
【解决方案2】:

尝试使用each

success: function (data){   
    $.each( data, function( key, value ) {
        if(key === "currency")
            alert( key + ": " + value );
    });   
});

【讨论】:

  • 他说他不想要所有key, values
猜你喜欢
  • 2010-09-13
  • 1970-01-01
  • 2018-12-31
  • 2016-08-23
  • 1970-01-01
  • 1970-01-01
  • 2020-10-26
  • 1970-01-01
  • 2022-01-21
相关资源
最近更新 更多