2012-04-26 77 views
0

我看到this answer处理从JSON获取数据。我试图做几乎相同,但我的JSON的结构与数组/对象不同,我不知道如何以相同的方式解析它。与jQuery导航JSON

我的JSON格式为这种格式,我试图编写一个函数来根据链接的问题找到某些元素,但没有键为json中的元素,不知道如何定位。或者我需要尝试重做我的json的输出吗? (这是由json_encode创建从修改笨数据库查询。

$(function() { 
var json = [ 
    { 

    "answer": [ 

     "4555" 

    ], 
    "answer_string": "4555|", 
    "qid": "70", 
    "aid": "742" 
    }, 
{ 

    "answer": [ 

     "monkeys", 
     "badgers", 
     "monkeybadgers" 

    ], 
    "answer_string": "monkeys|badgers|monkeybadgers|", 
    "qid": "71", 
    "aid": "742" 
    } 
]; 
    $.each(json[], function(i, v) { 
     if (v.qid= "70") { 
      alert(v.answer[0]); 
      return; 
     } 
    }); 
});​ 

jsfiddle

我需要找到答案[0],其中QID一定数量的匹配。

回答

1

您的javascript搞砸见更新小提琴:

http://jsfiddle.net/jQmyf/2/

具体做法是:if (v.qid= "70") {应该是v.qid==

$.each(json[]应该只是$.each(json

+0

谢谢!实际上在代码中有==。它没有在我的代码中工作的原因证明这是因为一个不同的问题:p – Damon 2012-04-26 14:32:59

0

你应该给每个只有数组的名称:

$.each(ja, function(i, v) { 

使用的比较,而不是分配里面,如果:

if (v.qid== "70") { 

$(function() { 
    var ja= [ 
     { 
     "answer": [ 

      "4555" 
     ], 
     "answer_string": "4555|", 
     "qid": "70", 
     "aid": "742" 
     } 
    ]; 
    $.each(ja, function(i, v) { 
     if (v.qid== "70") { 
      alert(v.answer[0]); 
      return; 
     } 
    }); 
});​ 

Updated Fiddle