我是 JavaScript 新手,我想要一个这样的 JSON 结构:
JSON
{
"ObjektId":["1","11","111","1111"],
"Selected": [
{
"SelectedObjektId":"555",
"SelectedObjektValues":["Test1","Test2","Test3"]
},
{
"SelectedObjektId":"112555",
"SelectedObjektvalues":["11Test1","22Test2","22Test3"]
}//,and many others
]
}
JS
var json = new Object();
json.ObjektId = new Array("1", "11", "111", "1111");
json.Selected = new Array();
//console.log(JSON.stringify(json));
var util = new Object();
util.SelectedObjektId = "555";
util.SelectedObjektValues = new Array("Test1", "Test2", "Test3");
json.Selected.push(util);
//console.log(JSON.stringify(json));
util.SelectedObjektId = "112555";
util.SelectedObjektValues = new Array("11Test1", "22Test2", "22Test3");
json.Selected.push(util);
我已经建立了这个,但现在我的问题。我通过一个函数动态生成它,JSON 模型是一个全局变量。现在,当我调用该函数两次等时,JSON 中包含旧值和新值。但我只想要新的 JSON 值。我尝试了几件事,但没有任何效果。
function getJSONObjektList() {
//HauptJSONknoten
var jsonObjekt = {};
jsonObjekt.ObjektId = [];
jsonObjekt.Selected = [];
//HilfsJSONknoten
var utilJSONObjekt = {};
utilJSONObjekt.SelectedObjektId;
utilJSONObjekt.SelectedObjektWerte = [];
doc = XYZ.GetCurrentDocument();
doc.GetAllObjects(function (objects) {
for (var i = 0; i < objects.length; i++) {
var obj = objects[i];
var id = obj.id;
var caption = obj.caption;
var type = obj.type;
var my = obj.my;
console.log("[obj:" + obj + " id:" + id + " caption:" + caption + " type:" + type + " my: " + my + "]");
//liste alle verfuegbaren Objekte auf
jsonObjekt.ObjektId.push(id);
if (type === "Statusbox") {
doc.GetObject(id, function () {
var statusboxInhalt = this.Data.Rows;
for (var j = 0; j < statusboxInhalt.length; j++) {
var inhalt = statusboxInhalt[j];
console.log("Name: " + inhalt[0].text + " Wert: " + inhalt[2].text);
utilJSONObjekt.SelectedObjektId = inhalt[0].text;
var valAr = inhalt[2].text.split(",");
for (var k = 0; k < valAr.length; k++) {
utilJSONObjekt.SelectedObjektWerte.push($.trim(valAr[k]));
}
jsonObjekt.Selected.push(utilJSONObjekt);
}
});
}
}
});
$('#txtboxQv').append(JSON.stringify(jsonObjekt));
return jsonObjekt;
}