0

私は Web アプリの GUI に取り組んでおり、json を使用して値を取得するよう求められています。キーの値を取得する簡単なスクリプトがありますが、機能していません。

HTML

<div class="get-data">
  <p>Get Data</p>
  <div class="json"> 
      <!--<p> will be created here --> 
  </div>
</div> 

JSON

 [
     {
        "id":-596859137166526783,
        "avatarDefinitionId":2,
        "tenantId":1,
        "avatarName":"qln320",
        "attributes":{
             "qln320.set.media.handling":"TEAR_OFF",
             "qln320.snr.memory.free":"66939392",
      }
     }
 ]    

jQuery

 $.getJSON('json/test.json', function(data) {
 var items = [];

 data[0].attributes['qln320.snr.memory.free'];

 $('<p/>', {
   'class': 'raw-list',
   html: items.join('')
   }).appendTo('.json');
 });
4

2 に答える 2

1

attributesオブジェクトを反復処理valし、コードqln320.set.media.handlingqln320.snr.memory.freeプロパティの値を返します。実際にはとを返します"TEAR_OFF"が、戻り値に関係なく、"66939392"ハードコードされval.qln320.snr.memory.freeた文字列をプッシュしています。

$.each(data[0].attributes, function (key, val) {
    items.push(val);
});

$('<p/>', {
    'class': 'raw-list',
    html: items.join('')
}).appendTo('.json');

http://jsfiddle.net/XDZ8Y/

ただし、エラー[TypeError: a is undefined]は、投稿されたスクリプトとは関係ありません。

于 2013-02-06T21:02:21.063 に答える
0

それが正確なjsonコードである場合、それは配列内にあります。このようにコードを変更する必要があります。

$.getJSON('json/test.json', function(data) {
 var items = [];
if(data.length)
{
var data=data[0];

//残りのコード。

于 2013-02-06T21:01:06.697 に答える