无法使用$ .getJSON解析json

时间:2014-07-02 14:17:22

标签: jquery json

我有像

这样的代码
$('#letter-b').click(function(e) {
  e.preventDefault();
  $.getJSON('b.js', function(data,status){
     $('#dictionary').html(data.term+" - "+status);
     }
  );
});

b.js就像

[
    {
        "term": "BACCHUS",
        "part": "n.",
        "definition": "A convenient deity invented by the...",
        "quote": [
        "Is public worship, then, a sin,",
        "That for devotions paid to Bacchus",
        "The lictors dare to run us in,",
        "And resolutely thump and whack us?"
        ],
        "author": "Jorace"
    }
]

但是当我按下按钮时,我得到了undefined - success

为什么我得到undefined?我如何改变我的语法以获得价值?我记得,当我有一个键值对时,我必须使用传入的数据(data),然后使用键的名称(term)来获取值。我还尝试了data[term]data["term"],但仍然没有。我错过了什么?

1 个答案:

答案 0 :(得分:4)

您回来的JSON实际上是一个包含对象的数组。您需要引用数组的第一个索引来访问实际数据:

$.getJSON( 'b.js', function( data, status ){
   var obj = data[ 0 ];
   $( '#dictionary' ).html( obj.term + " - " + status );
   }
);

以下是对响应中包含的结构的一个小解释:

[  // data
    { // data[ 0 ]
        "term": "BACCHUS", // data[ 0 ].term
        ...
    }
]