2013-04-17 3 views
1

KnockoutJS에는 관찰 가능한 배열의 중첩 구조를 JSON으로 직렬화하는 방법이 있습니까? JSON.stringify를 사용하지만 someObservableArray()로 배열에 액세스하지 않기 때문에 중첩 배열을 직렬화 할 수 없습니다.중첩 된 관찰 가능 배열을 JSON으로 serialize

예 : 각 항목에 관찰 가능 항목이있는 관찰 가능 배열이 있습니다. 배열을 속성으로 사용합니다.

은 현재 내가 수동으로 JSON.stringify를 호출하기 전에 표준 JS 객체로 변환하고 있지만, 직접

+0

[JSON.stringify JS Knockout JS 변수가있는 개체] 가능한 복제본 (https://stackoverflow.com/questions/15087710/json-stringify-an-object-with-knockout-js-variables) – Nisarg

답변

4

당신은 중첩 된 직렬화 할 수있는 ko.toJSON function을 사용할 수 있습니다 JSON으로 변환하는 저를 가능하게 할 것이다 또 다른 녹아웃 기능이있다 JSON을 관찰 구조 :

var vm = { 
    someObservableArray: ko.observableArray(
    [{ 
     prop: ko.observable('val1'), 
     childArray: ko.observableArray([{ 
      prop2: ko.observable('vla2') 
     }, { 
      prop2: ko.observable('val3') 
     }]) 
    }, { 
     prop: ko.observable('val4'), 
     childArray: ko.observableArray([{ 
      prop2: ko.observable('val5') 
     }, { 
      prop2: ko.observable('val6') 
     }]) 
    }]) 
} 
console.log(ko.toJSON(vm)); 
// output: {"someObservableArray":[{"prop":"val1","childArray":[{"prop2":"vla2"}, 
//   {"prop2":"val3"}]},{"prop":"val4","childArray":[{"prop2":"val5"}, 
//   {"prop2":"val6"}]}]} 

데모 JSFiddle.

관련 문제