2013-04-15 5 views
0
{ 
    "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 раньше ... что является хорошим первым шагом, чтобы разобрать это? Мне явно не нужно все это, мне нужны все экземпляры «title», «kind» и «content».Разбор возвращаемого значения JSON

Вы делаете это похоже на разбор строки?

Это моя функция, чтобы захватить его ...

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

Где мои возвращаемые данные хранятся точно? Это результат?

Я очень новичок во всем этом, поэтому прошу прощения, если я делаю некоторые очевидные ошибки. Я искал ответы на свой вопрос, но не могу найти легкое введение в это. Я хотел бы проанализировать использование javascript.

+0

http://stackoverflow.com/questions/4935632/how-to-parse-json-in-javascript –

+0

duuplicate HTTP: //stackoverflow.com/questions/6204675/json-string-parsing-in-javascript –

ответ

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

Да, вы можете просто разобрать его как объект 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); 
}); 
+1

Почему downvote? Комментарий был бы полезен, анонимный голос голосования не может ничего улучшить ... – PSL

+0

Не знаете, почему у вас есть нисходящее зрение, но метод петли отлично работал для меня! Я ценю помощь. Хотелось бы, чтобы я мог дать двум людям кредит на помощь мне. – Hoser

+0

Спасибо, кто когда-либо отменил downvote :) – PSL

Смежные вопросы