2012-03-06 5 views
0

이 클래스에서 어디서 잘못 될지 알려주실 수 있습니까? Javascript의 JSON Type으로 원시 문자열을 평가하는 것이 아니며 내가 잘못하고있는 것을 완전히 확신하지 못합니다. JS Lint를 통해 실행하면 유효한 JSON이라고 표시됩니다.JavaScript에서 단순 JSON 객체가 평가되지 않습니다.

을 heres 바이올린 :

+0

JSON을 확인하는 것은 유효하지 않습니다. –

답변

3

http://jsfiddle.net/pGygM/1/ 당신은 몇 가지 문제를 가지고 ...

  • jQuery를이 jsFiddle의 언어로 선택되어 있지 않습니다.
  • eval()을 전달할 때는 괄호로 묶으십시오. 따라서 eval()은 단순한 블록이라고 생각하지 않습니다.
  • jQuery는 $.parseJSON()을 대신 사용합니다.
  • 명명 된 키가있는 배열이 있습니다. 배열은 아니지만 객체이고 잘못된 JSON입니다.
  • alert()은 암시 적으로 객체에 toString()을 호출하므로 '[object Object]'을 반환하는 것은 유용하지 않습니다. 객체를 디버그하는 데 도움이되지 않습니다. 대신 console.log()을 사용하십시오.
+0

그리고 배열 시작자가 "[", 더 가까운 개체 "{"와 일치하지 않습니다. 몇 군데 시프트를 놓친 것 같아, 어쩌면? – zostay

+0

다음은 Alex & zostay의 주석이있는 업데이트 된 JSFiddle입니다 : http://jsfiddle.net/XcyNk/ – DashK

0

카메라 섹션에 JSON이 잘못되었습니다. 이

http://jsbin.com/ixucil/edit#javascript,html

HTML

<input type="hidden" id="testID" value='{ 
    "smo": { 
    "grid_columns": 3, 
    "grid_rows": 3, 
    "cameras": { 
     "camera": { 
      "camera_id": 1, 
      "row": 1, 
      "column": 1 
     } 
    } 
    } 
}' />​ 

JS

$(function(){ 
var txtVal = $('#testID').val(), 
obj = $.parseJSON(txtVal); 
console.log(obj); 
}) 
관련 문제