У меня есть JSON, представляющий древовидную диаграмму и хочу преобразовать это в JSON с новой структурой, которую можно визуализировать с помощью treant.js.Преобразование JSON в новый JSON с другой структурой
Он должен работать с различным количеством узлов. У каждого узла/детей может быть 0 или 2 детей. На самом деле это моя основная проблема, как перебирать входной JSON для получения всех детей и дочерних элементов без петли для каждого дочернего элемента.
Также заголовок родительского узла представлен только в его дочерних элементах, но мне он нужен в самом родителе.
вход:
treeModel = {
"TreeModel": {
"AlgorithmName": "CART",
"Child": [{
"RecordCount": 47,
"Score": "1", //should be the name
"ScoreDistribution": [
[24, 23], //should be the description as string
[0.5106382978723404, 0.4893617021276596]
],
"TreeNodePredicate": {
"FieldPredID": 0,
"FieldPredName": "Attribute1", //should be the title from parent
"FieldValue": 0,
"Operator": "EQUAL",
"PredicateType": "SimplePredicate"
}
}, {
"RecordCount": 214,
"Score": "0", //should be the name
"ScoreDistribution": [
[2, 212], //should be the description as string
[0.009345794392523364, 0.9906542056074767]
],
"TreeNodePredicate": {
"FieldPredID": 0,
"FieldPredName": "Attribute1", //should be the title from parent
"FieldValue": 1,
"Operator": "EQUAL",
"PredicateType": "SimplePredicate"
}
}],
"RecordCount": 261,
"Score": "0", //should be the name
"ScoreDistribution": [
[26, 235], //should be the description as string
[0.09961685823754787, 0.9003831417624522]
],
"TreeNodePredicate": {
"PredicateType": "TruePredicate"
}
}
}
выход:
chart_config = {
chart: {
container: "#tree-simple"
},
nodeStructure: {
text: {
name: "0" , //Score
title: "Attribute1", //FieldPredName from Child
desc: "26, 235", //ScoreDistribution as String
},
children: [
{
text: {
name: "1" , //Score
title: "", //FieldPredName from Child(empty as no childs)
desc: "24, 23", //ScoreDistribution as String
}
},
{
text: {
name: "0" , //Score
title: "", //FieldPredName from Child(empty as no childs
desc: "2, 212", //ScoreDistribution as String
}
}
]
}
};
Это не код, написание службы, попробуйте решить вашу проблему самостоятельно, вернуться, когда вы застряли. – GingerPlusPlus
Передайте его конструктору, который переназначает значения. Легко. – Crowes