解析JSON返回值

时间:2013-04-15 04:57:58

标签: javascript json parsing

{
    "status":"success",
    "data":
        {
            "title":"Testing",
            "token":"77fl",
            "questions":
                [{
                    "title":"How are you?",
                    "token":"UHGXI",
                    "kind":"multiple-choice",
                    "options":
                        [{
                            "content":"Good",
                            "token":"tLAzWd",
                            "kind":"text"
                         },
                    {
                          "content":"bad",
                          "token":"8LRR3t",
                          "kind":"text"
                     }]}]}}

我之前从未解析过JSON数据......解析这个问题的第一步是什么?我显然不需要所有这些,我需要所有“标题”,“善意”和“内容”的实例。

你这样做是否解析字符串?

这是我抓住它的功能......

$(document).ready(function(){
  $("button").click(function(){
    $.getJSON("http://quicksurvey.herokuapp.com/api/surveys/77fl/ask.json",function(result){
      });
    });
  }); 
});

我的归档数据存储在哪里?它在'结果'中吗?

我对这一切都很陌生,所以如果我犯了一些明显的错误,我会道歉。我一直在寻找我的问题的答案,但无法找到一个简单的介绍。我想用javascript解析。

2 个答案:

答案 0 :(得分:3)

答案是肯定的,它存储在结果中。 jQuery函数获取返回的JSON字符串并将其转换回代表所述字符串的本机javascript对象。如果没有返回带有名称的json字符串,那么result变量将是对象本身。但在您的情况下,您将对象命名为data,因此您应该像以下一样访问它:

$(document).ready(function(){
  $("button").click(function(){
    $.getJSON("http://quicksurvey.herokuapp.com/api/surveys/77fl/ask.json",function(result){
         //result.data 
         //result.status
      });
    });
  }); 
});

答案 1 :(得分:1)

是的,你可以,只需将其解析为jSON对象。您可以将属性和数组作为javascript对象或属性进行访问。 Fiddle

JS版

for(var i =0; i<result.data.questions.length; i++)
{
    alert(result.data.questions[i].title + ' ' + result.data.questions[i].kind);
}

Jquery的: -

alert(result.data.title);
$.each(result.data.questions,function(i,o){
    alert(o.title + ' ' + o.kind);
});