2013-07-21 6 views
4

자동 완성 스크립트를 만들려고합니다. JSON을 통해 변수를 전달한 다음 JSON을 디코딩하는 방법을 모릅니다. jQuery JSON 디코드 (PHP에서 자바 스크립트)

은 내가 가진 JSON 코드의 예입니다, 나는 간단한 자바 스크립트 배열로 변환하고 싶습니다 : JSON.parse를 사용하는 것입니다

[{"ID":"1","name":"Amateur astronomy \r"},{"ID":"2","name":"Amateur microscopy \r"},{"ID":"173","name":"Amateur radio \r"},{"ID":"299","name":"Amateur astronomy \r"},{"ID":"349","name":"Amateur theater \r"}] 
+0

json 문자열에 특수 문자가 있으면 어떻게해야합니까 ?? –

+0

나는 그것이 2 년이 넘었다는 것을 알고있다. 그러나 이것을 어떻게하는지 알아 냈는가? –

답변

18

이 작업을 수행하는 표준 자바 스크립트 방법 :

부족 오래된 브라우저와의 호환성을 위해
var myArray = JSON.parse(someJSONString); 

내장 JSON 객체, jQuery를이 its own method 있습니다

var myArray = jQuery.parseJSON(someJSONString); 

이러한 메소드는 jQuery/3.0부터 제공되지 않습니다.

10

자바 스크립트와 표준 방법은 JSON.parse 사용하는 것입니다 : 당신이 $.ajax (또는 대체)와 jQuery를 사용하는 경우는 dataType: 'json'

$.ajax({ 
    type: 'GET', 
    url: 'request.php', 
    data: { variable: 'value' }, 
    dataType: 'json', 
    success: function(data) { 
     // you can use data.blah, or if working with multiple rows 
     // of data, then you can use $.each() 
    } 
}); 

하지만, 경우에 사용할 수 있습니다

var myObject = JSON.parse(rawJSON); 

당신의 서버가 헤더를 다시 보냈습니다 Content-Type: application/json jQuery가 어쨌든 이것을 반환합니다.

jQuery를 사용하는 다른 방법은 $.parseJSON(rawJSON);입니다. 데이터 유형을 사용하는 경우에는이 작업을 수행 할 필요가 없습니다.

var JSONArray = $.parseJSON(rawJSON); 
+0

이 내 아약스 호출입니다 : [링크] (http://pastebin.com/AMxQi1Xg) 그러나 실제로는 작동하지 않습니다는, 콘솔은 JSONArray가 null 말한다 : 당신은 당신이 할 수 JSON 할 수있는 데이터 유형을 만든 이후/ –

+0

'var JSONArray = $ .parseJSON (data);'이 이미 변환되었으므로이를 스크랩합니다. 나는 당신을 위해 더 이해하기 위해 나의 대답을 편집했다. –

+0

이 솔루션이 효과가 있습니까? –