合并两个json(深层嵌套) [英] Merging two json (deep nested)
本文介绍了合并两个json(深层嵌套)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我尝试将两个json分别与$.extend
和$.merge
合并,但是没有成功.我还尝试将其附加为:
I tried to merge two json both with $.extend
and $.merge
but no success. I also tried to attach it like this:
data: JSON.stringify({"data" : [
{term: request.term},
jsontag
]}),
这是我的设置:
autocomplete: ({
source: function (request, response) {
var tags = $('#input-newsearch-2').val();
var jsonfied = {
tags: tags.replace(/,$/, "").split(",").map(function (tag) {
return { tag: tag };
})
};
var jsontag = JSON.stringify(jsonfied);
var jsonterm = JSON.stringify({ term: request.term });
//console.log(jsontag);
//console.log(jsonterm);
//var mergedObj = $.extend(jsontag, jsonterm);
//console.log(mergedObj);
$.ajax({
url: "/source",
type: "POST",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: [jsontag, jsonterm],
success: function (data) {
response(data);
}
});
},
});
控制台:
{"tags":[{"tag":"value01"},{"tag":"value02"},{"tag":"value03"}]}
{"term":"value04"}
我希望得到某事:
[{"term":"value04"},{"tags":[{"tag":"value01"},{"tag":"value02"},{"tag":"value03"}]}]
甚至更好:
{"data":[{"term":"value04"},{"tags":[{"tag":"value01"},{"tag":"value02"},{"tag":"value03"}]}]}
推荐答案
您可以简单地做到这一点,并实现您想要的目标.
You can simply do this, and achieve what you desire.
const mergedJSON = {data: []};
mergedJSON.data.push(jsonterm);
mergedJSON.data.push(jsontag);
console.log(JSON.stringify(mergedJSON));
输出将是
{"data":[{"term":"value04"},{"tags":[{"tag":"value01"},{"tag":"value02"},{"tag":"value03"}]}]}
哪个更符合您的更好方案.检查此 jsFiddle 进行演示.
Which fits your even better scenario. Check this jsFiddle for demo.
这篇关于合并两个json(深层嵌套)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文