0
데이터를 트리 구조로 유지하는 배열이 있지만이 데이터를 json으로 변환하고 싶습니다. 배열 트리를 Json 트리로 변환하는 방법은 무엇입니까?
[Object]
0: Object
children: Array[1]
0: Object
children: Array[1]
0: Object
children: Array[10]
0: Object
children: Array[6]
value: Object
1: Object
2: Object
3: Object
4: Object
5: Object
6: Object
7: Object
8: Object
9: Object
value: Object
Id: "00145E5BB2641EE284F811A7907757A3"
Parent: "00145E5BB2641EE284F811A7907737A3"
Ref: undefined
Text: "Functional Areas"
Type: "TWB"
지금 내가 JSON 데이터의 이러한 배열을 변환 할 : 이 내 데이터의 예입니다. 나는 JSON.stringify (myArray)를 시도했다. 형식이 올바르지 않습니다. 그것은 나무의 모든 구조를 파괴합니다. 아이디어가 있으십니까?
위의 결과를 나타내는 코드입니다. JSON 문자열 표기법에 native JavaScript Object를 ("캐릭터 라인 화") 인코딩 할 수 있습니다
function transformToStruct(xmlData, callback) {
var data = xmlData.item;
var roots=[];
var children = {};
var arry=createStructure(data);
// find the top level nodes and hash the children based on parent
for (var i = 0, len = arry.length; i < len; ++i) {
var item = arry[i],
p = item.Parent,
target = [];
if(p == rootId) {
target = roots;
}
else {
target = (children[p] || (children[p] = []));
}
target.push({ value: item });
}
// function to recursively build the tree
var findChildren = function(parent) {
if (children[parent.value.Id]) {
parent.children = children[parent.value.Id];
for (var i = 0, len = parent.children.length; i < len; ++i) {
findChildren(parent.children[i]);
}
}
};
// enumerate through to handle the case where there are multiple roots
for (var i = 0, len = roots.length; i < len; ++i) {
findChildren(roots[i]);
}
// var returnV = JSON.stringify(roots);
// callback(returnV);
callback(roots)
}
function createStructure(data) {
var arry = [];
$.each(data, function(i, val) {
var parent = val["ParentId"]["#text"];
var id = val["NodeId"]["#text"];
var text = val["NodeText"]["#text"];
var level = val["NodeLevel"]["#text"];
var ref = val["RefObject"]["#text"];
var type = (val["NodeType"]["#text"]).substring(0,3);
if(level == "01")
rootId = parent;
var item = {"Id": id, "Text": text, "Parent": parent, "Type" : type, "Ref" : ref};
arry[i] = item;
// arry.push(item);
});
console.log(arry)
return arry;
}
중복 일 수 있습니다. http://stackoverflow.com/questions/10919965/how-do-i-encode-a-javascript-object-as-json –
트리 개체를 복사하여 붙여 넣기합니까? 그렇다면 올바른 형식이 아니기 때문에 형식이 올바르지 않습니다. – jhorton
개체의 기본 JavaScript 코드를 보거나 콘솔 로그에 인쇄하여 여기에 붙여 넣기를 원합니다. 위의 코드는 의사 코드이지만 prob 코드는 실제 코드 인 것 같습니다. –