2013-01-24 3 views
4

사이트에서 일부 JSON을 가져 와서 파싱해야합니다. 문제는 객체의 이름이 "-1" "-2"라는 것입니다. "obj가 정의되지 길이 = obj.length 형식 오류""-1"이라는 객체가있는 JSON

크롬 유사한 메시지, "catch되지 않은 형식 오류로 돌아온다 : 속성을 읽을 수 없습니다 '길이

나는 그것을 구문 분석하려고, 방화범은 다시 함께 제공 정의의 ' "참고로

, 여기에 JSON의 snipet입니다 :

{ 
    "-1": { 
    "number": 47, 
    "properties": [ 
     [ 

는 그리고 여기 내가 사용하려고 해요 코드입니다.

$.getJSON("http://www.website.com/builds?select=-1&select=-10",function(data){ 
    $.each(data.-1, function(info,value){ 

내가 JSON을 다운로드하는 경우, "-1" "한"이름을 로컬로 저장하고 이름을 바꿀는 "-2"에 "두 사람은"그것은 잘 작동합니다. E.G.

{ 
    "one": { 
    "number": 47, 
    "properties": [ 
     [ 

그리고 내 코드이 잘 작동

$.getJSON("C:\json.json",function(data){ 
    $.each(data.one, function(info,value){ 

이되고 있지만, 다른 복잡한 단계를 추가하십시오 JSON이된다.

원본 JSON을 서버에서 자동으로 생성하여 변경하는 방법이 있습니까? 아니면 구문 분석 전에 로컬로 저장하고 객체 이름을 변경하는 방법을 알아 내려고합니다. ?

답변

7

data.-1은 대괄호 표기법을 사용하여 문자열로 참조되어야합니다.

data["-1"]

+0

Perfect, thanks Kevin – Andenthal

관련 문제