2014-05-09 6 views
1

안녕하세요 여러분, 저는 json 데이터를 ajax 호출로 어떻게 얻을 수 있는지 알고 싶습니다. jquery로 json 데이터 가져 오기

나는이 시도했지만 작동하지 않습니다 것 같다 : P 먼저 내 JSON 데이터 요소 내부에 넣어 자바 스크립트 파일을 만든

:

var food = [ 
      {'name':'bread', 'price':'7,25'}, 
      {'name':'fish', 'price':'9,00'} 
      ]; 

내가 food.js.로 저장

$(document).ready(function(){ 

    $.ajax({ 
     async: false, 
     dataType: "json", 
     type:'GET', 
     url:"food.js", 
     success: function(data) { 

      var result = data.food.name; 
      alert(result); 

     }); 

    }}); 

}); 

어떤 아이디어 :

그때 나는이 내 코드입니다, 다른 파일에서 아약스 호출을 만들려고? 사전에

감사)

답변

3

첫째, 당신은 당신의 예에서 구문 오류가 - 나는 그건 그냥 오타 같아요 있지만 $.ajax 전화에 너무 많은 닫는 중괄호가있다. 당신의 JSON에서

, food 배열, 그래서 당신은 내 개체의 속성을 얻기 위해 인덱서를 사용해야합니다

success: function(data) { 
    var result = data.food[0].name; // = "bread" 
    alert(result); 
}); 
0

당신은 루프에 필요한이

$(document).ready(function() { 
    $.ajax({ 
     async: false, 
     dataType: "json", 
     type:'GET', 
     url:"food.js", 
     success: function(data) { 
      var result = data.food[0].name; 
      alert(result); 
     } 
    }); 
}); 
0

시도 반환 된 data은 배열이므로

$.each(data,function(i,val) { 
    alert(data[i].name); 
}); 
0

아마 JQuery와의해서 getJSON 함수를 사용하려면 : http://api.jquery.com/jquery.getjson/

$.getJSON("food.json", function(data) { 
    //here your callback 
} 

그것은 json에 데이터 유형 기본적으로 GET에 대한 방법을 설정합니다.

또한 jsons 확장자가 아닌 .json 확장자를 사용해야합니다. 그리고 적절한 JSON과 같은 포맷 :

{ 
    "food": [ 
     { 
      "name": "bread", 
      "price": 7.25 
     }, 
     { 
      "name": "fish", 
      "price": 9.00 
     } 
    ], 
} 

당신은 당신에게 형식 jsons 도움이 웹 사이트를 사용할 수 있습니다 http://www.jsoneditoronline.org/

당신이 당신의 요소가 작동하지 않습니다 전화하려고하는 방법. 얻을 수있는 데이터는 배열입니다. 콜백, 당신이 시도 할 수 있습니다 :

console.log(data) 
console.log(data.food) 
console.log(data.food[0]) 
console.log(data.food[0].name) 
console.log(data.food[0].price) 

마지막으로, 당신은 혼수 상태로 숫자를 포맷 노트,이 방법 당신은 자바 스크립트의 형식 번호가 아닙니다. 점을 사용하면 숫자로 조작 할 수 있습니다.

0

사람들이 "food.js"가 JSON 문자열이 아니라는 사실을 완전히 무시하는 방식을 좋아합니다. 자바 스크립트 코드입니다. 이것은 올드 스쿨 eval 기반의 "JSON"에서 작동하지만, jQuery AJAX를 사용하면 대상 파일이 일반 JSON이어야합니다. 처음부터 var food =을 제거하고 끝에서 ;을 제거하십시오.

data.food[0].name에 액세스 할 수 있습니다.

0

이 경우 ajax를 통해 다른 javascript 파일을 가져 오려고합니다. 이를 위해 Ajax GetScript (see here)를 사용하여 페이지에 food.js의 스크립트를 "포함"할 수 있습니다.

json 파일을 직접 요청할 때 코드가 더 유용합니다.

+0

데이터 유형 대신 로드리고, 'json'데이터 유형을 'script'로 변경하고 완벽하게 작동합니다. :) – Vasileios