Javascript 在jquery angularjs中将json结构转换为嵌套json结构
我可以知道如何将我当前的json文件转换为嵌套的json结构,如下所示,我已经尝试了几种方法(),但我不明白,请帮助我哪里做错了,以便我们可以使用ng repeat在我的查看页面上迭代imageurl值。如果我使用下面的,它不是按照我想要的结构给出的Javascript 在jquery angularjs中将json结构转换为嵌套json结构,javascript,jquery,html,json,angularjs,Javascript,Jquery,Html,Json,Angularjs,我可以知道如何将我当前的json文件转换为嵌套的json结构,如下所示,我已经尝试了几种方法(),但我不明白,请帮助我哪里做错了,以便我们可以使用ng repeat在我的查看页面上迭代imageurl值。如果我使用下面的,它不是按照我想要的结构给出的 html: <form id="controlid" method="post" action="" enctype="multipart/form-data" > <input type="hidden" value=
html:
<form id="controlid" method="post" action="" enctype="multipart/form-data" >
<input type="hidden" value="3d{{$index}}" name="3d" >
<input type="hidden" value="sliceX{{$index}}" name="sliceX">
<input type="hidden" value="sliceY{{$index}}" name="sliceY" >
<input type="hidden" value="sliceZ{{$index}}" name="sliceZ">
<input type="button" id="submitButton" value="Save">
</form>
jquery:
$("#submitButton").on('click', function(e) {
var el = document.querySelectorAll('#text [type="hidden"]');
var arr = [];
var obj = {};
var push = false;
for(var i = 0; i < el.length; i ++){
if(el[i].value.indexOf('/tests/images') > -1){
if(push){
arr.push(obj);
obj = {};
};
obj.name = 'imageurl';
obj.value = el[i].value;
push = true;
}
obj.parts = obj.parts || [];
obj.parts.push({
name: el[i].name,
value: el[i].value
});
}
var fileDataToSave = $(obj).serializeArray();
var jsoncontent = JSON.stringify( fileDataToSave );
var $downloadAnchor = $("<a/>", {
href: 'data:text/json;charset=UTF-8,' + jsoncontent,
download: "info.json"
});
$downloadAnchor.css({"position": "absolute", "left": "970px", "top":"258px"});
$downloadAnchor.text("Click here to download JSON");
$("form").append($downloadAnchor);
e.preventDefault();
return false;
});
纯Javascript解决方案
var json; // your current json object
var newJson = [];
for (var i = 0; i < json.length; i++) {
var node;
if (json[i].name === "imageurl") {
node = json[i];
var parts = [];
for (var j = i + 1; j < json.length; j++) {
if (json[j].name !== "imageurl") {
parts.push(json[j]);
} else {
i = j - 1;
break;
}
}
node.parts = parts;
newJson.push(node);
}
}
var json;//您当前的json对象
var newJson=[];
for(var i=0;i
我们只需循环遍历所有元素,找到那些具有name==“imageurl”
的元素,并将其余元素添加为部分,直到找到具有name==“imageurl”
的新元素
Hi-LinkinTED的可能重复,谢谢您的回复,我已经尝试过了,但我没有得到高于所需输出json结构的结果。请帮我解决这个问题。提前谢谢。嗨,teamnorge,谢谢你的回复。是的,它对我有用。谢谢!!。
var json; // your current json object
var newJson = [];
for (var i = 0; i < json.length; i++) {
var node;
if (json[i].name === "imageurl") {
node = json[i];
var parts = [];
for (var j = i + 1; j < json.length; j++) {
if (json[j].name !== "imageurl") {
parts.push(json[j]);
} else {
i = j - 1;
break;
}
}
node.parts = parts;
newJson.push(node);
}
}