1

I'm new to jQuery. Following is the data variable that contains a json dictionary.

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

and my jQuery method receives a json/Javascript object from the Rest GET call

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

Is there any library that can help to parse/walk through this json object and get to some kind of objects list? I want to check some of the keys and their respective values. Problem is I don't need all the keys and values from the list and also some of the values can be null, which prevented me to apply some solutions I found using SO.

Or usually is it more common to directly start printing the HTML inside the success function?

EDIT:If it was java for example it would be a Map and I would use an iterator to walk through and see/analyse the map values, and create some array list with the values I want from it. What's equivalent of that in jQuery?

4

2 に答える 2

3

たとえばJavaの場合、それはマップになり、イテレータを使用してマップ値をウォークスルーして表示/分析し、必要な値を含む配列リストを作成します。jQueryでこれに相当するものは何ですか?

すべての JavaScript オブジェクトは、連想マップと見なすことができます

たとえば、通貨に直接アクセスできます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>'
));

デモンストレーション

jQuery を使用すると、同じ反復をより簡単にすることができます (から直接作業しますdata)。

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

デモンストレーション

于 2013-01-08T09:43:37.760 に答える
1

使ってみてeach

success: function (data){   
    $.each( data, function( key, value ) {
        if(key === "currency")
            alert( key + ": " + value );
    });   
});
于 2013-01-08T09:49:36.417 に答える