2013-03-28 4 views
0

것은 내가 넉 아웃 튜토리얼을 통해 찾고 있어요 및 JSON 예, 그것은 (는 JSON 객체의 배열 인 경우) 웹 서비스는 다음과 같이 JSON을 반환 있다고 가정서비스에서 "형식이 잘못 지정된"JSON을 다루고 있습니까?

[ { "id": 1}, { "id": 2}, { "id": 3} ] 

내가 얼마나 거래 것 다르게 구조화 된 JSON을 반환하는 서비스?

[ { "resource": { "id": 1} }, { "resource": { "id": 2} }, { "resource": { "id": 3 } } ] 

자원 이름이 아닌 ID 이름을 원합니다.

감사합니다.

편집 : 리소스 (Matt마다)에 잘못된 서식이 수정되었습니다. JSON은 유효합니다. KO 예제가 기대하는 형식이 아닙니다.

var original = JSON.parse([ { "resource": { "id": 1} }, { "resource": { "id": 2} }, { "resource": { "id": 3 } } ]); 
var flattened = []; 
for (var i=0; i < original.length; i++) { 
    flattened.push(original[i].resource); 
} 

당신이 정말로 다시 JSON으로 출력을해야하는 경우 :

+4

두 번째 예도 유효한 JSON이 아닙니다. 'resource'는 따옴표로 묶어야합니다. –

+0

죄송합니다. 코드 예제를 수정했습니다. – Stephen

답변

2

당신은 당신의 데이터를 통해 단지 루프 수 있어야하고 그것을 평평해야한다는 (원래 가정은 자바 스크립트의 배열을 JSON이 아닌 객체이다) , 사용할 수 있습니다 JSON.stringify

+0

매트, 제 예제를 수정했습니다. JSON 객체의 배열입니다. 그러나, 나는 당신이 말했듯이 그것을 반복하여 평평하게 할 수 있습니다. 이제 var flattenedArray = ko.observableArray (평평하게)와 같은 것을 할 수 있습니다. – Stephen

+1

먼저 JSON.parse 만하십시오. 내 대답을 편집 할게. –

관련 문제