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.handlingandqln320.snr.memory.free属性的值,实际上它返回"TEAR_OFF"and "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 回答