2016-08-16 4 views
0

jQuery의 $.each()을 사용하려고했지만 IE6에서는 작동하지 않았습니다. 그래서 json2를 입력하십시오. 그래서 데이터를 받고 그냥JSON은 ajax에서 stringify를 호출합니다. ie 6과 호환됩니다.

"속성 '축구'정의의 읽을 수 없습니다"말하는하지만 배열

var i; 
    for(i=0; i<theData.Event.Football.length; i++) 
    { 
     alert(theData.Event.Football[i].time); 
    } 

을 통해 호출 다음

var theData = JSON.stringify(data); 

를 사용하여 VAR에 결합하고 JSON은 변형을 시도한 지 6 시간 만에 단순한 오해를 사용합니다.

var theData = JSON.stringify(data); 

이 소요 :

{ 
"Event":{ 
    "Football":[ 
     { 
      "title": "Some Event", 
      "time": "6:00" , 
      "competitors": { 
      "competitors1": "Boaty Mc Boat", 
      "competitors2": "Disco Dave" 
      }, 
      "win": { 
      "win1": 1.3, 
      "win2": 1.89, 
      "win3": 1.79 
      } 
     }, { 
      "title": "Some Event", 
      "time": "7:00" , 
      "competitors": { 
      "competitors1": "Flesh Wound", 
      "competitors2": "None Shall Pass" 
      }, 
      "win": { 
      "win1": 2.03, 
      "win2": 1.79, 
      "win3": 1.79 
     } 
    ] 
    } 
} 

최종 수정이는 AJAX 구문에 문제가 있었다, 여기에 위의 코드는이 줄

$.ajax({ 
    type: 'GET', 
    url: "football1.json", 
    dataType: "json", 
    processData: true, 
    contentType: "text/json; charset=utf-8", 
    data: {}, 
    success: function(data){ 
     alert('working'); 
     // do stuff 
    }, 
    error: function(jqXHR, textStatus, errorThrown) { 
     console.debug(textStatus, errorThrown); 
    } 
}); 
+3

* "Jquery의 $ .each()를 사용하고 싶습니다. 작동하지만 6에 없습니다."그래서 json2를 입력하십시오. "* 음 ... 그들은 서로 관련이 없습니다. –

답변

4

을 작업 할 수 있습니다 작업 버전입니다 데이터 구조를 만들고이를 문자열 (JSON)로 변환합니다.

data인 경우 이미 문자열이 아니므로 바로 사용하십시오. , 당신은 다시 data는 JSON을 포함하는 문자열입니다

var theData = JSON.parse(data); 

을 ... 원하는 data 만약

문자열 그리고 당신은 다른 길을 가고 싶어.

하는 점, $.each 또는 for 루프 중 하나 (또는 ​​various other options, 모듈 IE6 (!) 지원) theData.Event.Football을 통해 반복됩니다.

+0

안녕하세요. T.J 감사합니다. 그것은 직접 호출, JSON 데이터를 AJAX 요청을 통해 호출 된 언급했다 및 루프 .success(), 호출 된 있지만 IE 6,7 작동하지 않는 테스트하려면 다른 VM 스핀해야합니다. 8,하지만 같은 이야기를 추측합니다. – Paddy

+0

긴 이야기를 짧게 요약하면, AJAX 요청에 대한 구버전을 보았을 때 구문이 작동하지 않는다는 것이 밝혀졌습니다. 올바른 방향으로 나를 가르쳐 주셔서 감사합니다 : D 조 – Paddy

1

데이터를 문자열로 지정하면 문자열이됩니다. 객체의 JSON 문자열로 표현 된 객체 속성에 액세스 할 수 없습니다.

for 루프가 정상적으로 보이고 IE6에서 작동해야하지만 theData이 아니라 data에서 실행해야합니다.

또는 문자열도 data입니까? theData = JSON.parse(data)을 사용하셨습니까?