2009-08-06 2 views
2

질문 및 라디오 버튼 목록이있는 양식을 채우려고합니다. 페이지가로드 될 때 나는 대답이 들어있는 변수들이 지금까지 JSON 형식의 문자열로 가지고 있습니다변수를 JSON w/jQuery로 구문 분석

var json = '{ "answers" : [{"84" : "Y" },{"85" : "Y" },{"86" : "Y" },{"87" : "Y" },{"88" : "Y" },{"89" : "N" },{"90" : "N" },{"91" : "N" },{"92" : "Y" },{"93" : "N" },{"94" : "Y" },{"95" : "N" },{"96" : "N" },{"97" : "Y" }]}'; 

나는 대답을 반복 필요하고 수 IE와 일치하는 ID와 라디오 버튼을 찾을 수 id = "84"로 설정하고 해당 값 (Y)을 기준으로 값을 설정합니다.

getJSON은 내가 쳐다보아야 만하는 것처럼 보이지만 이미 가지고 있기 때문에 데이터를 가져올 필요가 없습니다.

답변

0

가, 알았어 위에서 언급 그래서 주어진 ID에 대한 모든 요소를 ​​선택할 수있는 ID와 일치하는 클래스를 추가로 따옴표를 제거 :

for(var i =0; i < json.answers.length; i++) { 
      var item = json.answers[i]; 
      for (var j in item) { 
       $('.' + j).each(function(){ 
       if ($(this).attr("value") == item[j]) $(this).attr("checked", true); 
       }); 
    } 
} 

나는 더 나은 해결책이있을 것이라고 확신하지만, 지금까지 아주 잘 작동하고 있습니다.

4

외부의 따옴표 만 제거하면 이미 올바른 형식이됩니다. 다른 형식과 달리

var json = { 
       "answers" : [{"84" : "Y" }, 
       {"85" : "Y" }, 
       {"86" : "Y" }, 
       {"87" : "Y" }, 
       {"88" : "Y" }, 
       {"89" : "N" }, 
       {"90" : "N" }, 
       {"91" : "N" }, 
       {"92" : "Y" }, 
       {"93" : "N" }, 
       {"94" : "Y" }, 
       {"95" : "N" }, 
       {"96" : "N" }, 
       {"97" : "Y" } 
      ] 
     }; 

는, JSON은 당신이 정기적으로 코딩에 JSON 형식을 사용할 수 있다는 것을 의미 실제 언어 기반으로합니다. JSON을 작성하는 것은 상당히 쉽습니다.

+0

GAH - 감사합니다. 이제 기본 응답 객체에서 값을 가져 오는 방법을 알아야합니다. 다음과 같이 반복합니다. for (var i = 0; i Slee

+0

json.answers [i] .84는 첫 번째 값을 가져옵니다. –

+0

예. 숫자가 항상 바뀌고 있습니다. 나는 미리 알지 못합니다. – Slee

0

는 일반적으로 당신은 각각 문 아래처럼 사용합니다 :

jQuery.each(json.answers, function(i, val) { 
    $("#" + i).val() = val; 
});