Javascript 在jquery angularjs中将json结构转换为嵌套json结构

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=

我可以知道如何将我当前的json文件转换为嵌套的json结构,如下所示,我已经尝试了几种方法(),但我不明白,请帮助我哪里做错了,以便我们可以使用ng repeat在我的查看页面上迭代imageurl值。如果我使用下面的,它不是按照我想要的结构给出的

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);
  }
}