.each解析JSON返回undefined

时间:2013-09-27 00:12:41

标签: javascript jquery ajax json

您好我有以下代码:

$.ajax({'type':'POST', 'url':'https://www.123.com/site/gethistory',
        'data':{'a': this.username, 'b': username},
        'success':function(history){
            alert(history);
            var codes = jQuery.parseJSON(history);
            $.each(codes, function(key, value) {
                alert(key);
            }); //each
        }, 
        'error':function(){
        }
       });  //ajax

现在钥匙未定义。我试图提醒(value.text),它仍然给我未定义。


历史记录如下:

  

[{"演示" {"文本":"喜   人""时间":" 1380167419"}"管理" {"文本":"喜&#34 ;,"时间":" 1380167435"}"演示" {"文本":"此   现在工作完美无缺。","时间":" 1380167436"},"演示":{"文字":&#34 ;我们是   基本上完成了这个/","时间":" 1380167443"}}]

3 个答案:

答案 0 :(得分:1)

它在fiddle中运行良好。但是,您的JSON存在问题。

虽然它在语法上是正确的,但它的结构使得您返回一个具有许多属性的一个对象的数组:

[
  { "demo":{
      "text":"hi man",
      "time":"1380167419"
    },
    "admin":{
      "text":"hi",
      "time":"1380167435"
    },
    "demo":{
       "text":"this works flawless now.",
       "time":"1380167436"
    },
    "demo":{
      "text":"we are basically done with this/",
      "time":"1380167443"
    }
  }
]

每个后续demo都会覆盖前一个demo,因此您只会看到最后一个{{1}}属性。

答案 1 :(得分:0)

您的JSON看起来有问题。尝试警报代码并确保解析的JSON格式正确,即键/值对

答案 2 :(得分:0)

无需使用jQuery来解析JSON。只需var codes = JSON.parse(history)

$.each(codes, function(k, v){
  console.log(v )
});