2012-10-29 3 views
-1

일부 Json 데이터를 특정 형식으로 가져 오려고 할 때 몇 가지 문제가 있습니다. 내가 사용 시도Json 피드가 자바 스크립트 배열

var arrProducts = [ 
          title: "{{ product.title }}", 
          url: "{{ product.url }}", 
          label: "{{ product.title }}", 
          magazine: "{{ product.magazine }}", 
          image: "{{ product.imageThumb }}", 
          newsstand: "{{ product.newsstand }}", 
          kindle: "{{ product.kindle }}", 
          barnesnoble: "{{ product.barnesnoble }}", 
          zinio: "{{ product.zinio }}", 
          kobo: "{{ product.kobo }}", 
          waterstones: "{{ product.waterstones }}", 
          type: "{{ product.type }}", 
         }, 
      ]; 

:

{ 
query: [ ], 
products: 
[ 

{ 
title: "title 1", 
price: "6.00", 
magazine: "magazine name 1", 
image: "/p/c/pc_90_cover.jpg", 
type: "Magazine", 
market: "Technology", 
zinio: "http:www.zinio.com", 
newsstand: "http://www.link1.php" 
}, 


{ 
title: "title 2", 
price: "6.00", 
magazine: "magazine name 2", 
image: "/p/c/pc_90_cover.jpg", 
type: "Magazine", 
market: "Technology", 
zinio: "http:www.zinio.com", 
newsstand: "http://www.link2.php" 
}, 


{ 
title: "title 3", 
price: "6.00", 
magazine: "magazine name 3", 
image: "/p/c/pc_90_cover.jpg", 
type: "Magazine", 
market: "Technology", 
zinio: "http:www.zinio.com", 
newsstand: "http://www.link3.php" 
} 
] 

이 자바 스크립트 배열로 이동하십시오 :

var allProducts = $.get("http://localhost:8888/web/app_dev.php/api/v1/search/search.json, function(data) { 

var productsArray = data.products; 

console.log(productsArray); 

}); 

하지만 그 방법은 구축하지 않습니다

나는 기본적으로이 JSON 데이터를 필요 내가 필요한 형식의 배열. Console.log는 많은 수의 개체를 출력합니다. 어쩌면 각 루프마다 해결책이 될 수 있을까요? - 어떤 도움을 주셔서 감사합니다, 내 자바 is not 그 위대한!

+0

원하는 결과에 구문 오류가 있습니다. 해시 맵 배열이 필요합니까? –

+1

결과 데이터를 파싱하여 변환해야합니다. 성공 함수의 첫 번째 행은'data = JSON.parse (data); '이어야합니다. – Archer

+0

다음과 같은 오류가 있습니다. Uncaught SyntaxError : 예기치 않은 토큰 o : 8888/great-digital-mags/web/app .php/: 168 (익명 함수) : 8888/great-digital-mags/web/app.php/: 168 o jquery.min.js : 2 p.fireWith jquery.min.js : 2 w jquery .mins : 4 d – richelliot

답변

2

http://jsonlint.com을 사용하여 json의 유효성을 검사하십시오. 거기를지나 가지 않으면 아약스도 통과하지 못합니다. 샘플에 객체 키와 시작 중괄호에 큰 따옴표가없고 쉼표가 추가되어 있고 아약스에서 사용하는 경우 파일에 var arrProducts =이 포함되어 있지 않습니다.

페이지에이 파일과 함께 스크립트 태그를 삽입하면 차이가 있습니다. 초기 페이지로드. 그런 다음 var arrProducts =이 필요하며 객체 키의 따옴표는 필요하지 않습니다. 그리고 아약스보다는 당신하고자 단순히 변수 arrProducts

편집 돌이 : 반복하려면

첫 번째 샘플을 통해 JSON 및 루프를 구문 분석하는 방법에 대한 풍부한 정보가있다

$.getJSON(url, function(data) { 
    var productsArray = data.products; 
    $.each( productsArray, function(i, item){ 

     console.log('Title is '+ item.title) 

    }) 

}) 

객체와 배열에 ... 당신은 검색을 시도 했습니까?

+0

내가 준 예제에 포함 된 Json에는 오류가 있지만 Json이 함께 작업 한 것이 올바른지 확인합니다. 그것은 내가 잘못한 부분을 복사 한 것입니다 ... opps! 어떻게하면 arrproducts를 반복하여 내 예제의 배열과 일치하는 배열을 만들 수 있습니까? – richelliot

+0

편집 된 솔루션 – charlietfl

+0

이 솔루션은 효과가 있지만 여전히 개체 인 데이터의 원래 문제가 남아 있습니다. 이 배열을 문자열 배열로 변환하려면 어떻게해야합니까? – richelliot