Javascript 如何将两个json对象连接在一起?
我有一项任务要做用户编辑。是我干的。但我无法将值作为json对象传递。如何连接两个值。 我的第一个目标是Javascript 如何将两个json对象连接在一起?,javascript,jquery,html,ajax,json,Javascript,Jquery,Html,Ajax,Json,我有一项任务要做用户编辑。是我干的。但我无法将值作为json对象传递。如何连接两个值。 我的第一个目标是 $.fn.serializeObject = function() { var o = {}; var a = this.serializeArray(); $.each(a, function() { if (o[this.name] !== undefined) { if (!o[this.name].push) {
$.fn.serializeObject = function()
{
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name] !== undefined) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
}
else {
o[this.name] = this.value || '';
}
});
return o;
};
var location = function() {
var self = this;
self.country = ko.observable();
self.state = ko.observable();
};
var map = function() {
var self = this;
self.lines = ko.observableArray([new location()]);
self.save = function() {
var dataToSave = $.map(self.lines(), function(line) {
return line.state() ? {
state: line.state().state,
country: line.country().country
} : undefined
});
alert("Could now send this to server: " + JSON.stringify(dataToSave));
};
};
ko.applyBindings(new map());
});
我的第二个目标是
$.fn.serializeObject = function()
{
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name] !== undefined) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
}
else {
o[this.name] = this.value || '';
}
});
return o;
};
var location = function() {
var self = this;
self.country = ko.observable();
self.state = ko.observable();
};
var map = function() {
var self = this;
self.lines = ko.observableArray([new location()]);
self.save = function() {
var dataToSave = $.map(self.lines(), function(line) {
return line.state() ? {
state: line.state().state,
country: line.country().country
} : undefined
});
alert("Could now send this to server: " + JSON.stringify(dataToSave));
};
};
ko.applyBindings(new map());
});
我想连接这个。我试过了,但我错了
$.ajax({
url: '/users/<%=@user.id%>',
dataType: 'json',
//async: false,
//contentType: 'application/json',
type: 'PUT',
data: {total_changes: JSON.stringify(dataToSave) + JSON.stringify($("#edit_user_1").serializeObject())},
//data:JSON.stringify(dataToSave),
//data:dataToSave,
success: function(data) {
alert("Successful");
},
failure: function() {
alert("Unsuccessful");
}
});
$.ajax({
url:“/users/”,
数据类型:“json”,
//async:false,
//contentType:'应用程序/json',
键入:“PUT”,
数据:{total_changes:JSON.stringify(dataToSave)+JSON.stringify($(“#编辑_用户_1”).serializeObject())},
//数据:JSON.stringify(dataToSave),
//数据:dataToSave,
成功:功能(数据){
警报(“成功”);
},
失败:函数(){
警报(“未成功”);
}
});
当我运行这个程序时,它会在终端中显示这样的错误
如何解决此问题?如果您有json1和json2对象,则可以执行以下操作:
$.extend(json1, json2);
因此,在json1中,您将合并两个对象。问题是
JSON.stringify(…)+JSON.stringify(…)
。这将创建一个类似于“{…}{…}”
的字符串,该字符串显然无效(这就是您从中获得JSON::parserror
的原因)
我不确定您想要完成什么,也不确定您的服务器希望使用哪种JSON结构,但您可以这样做
…
contentType: 'application/json',
data: JSON.stringify( {
total_changes: dataToSave,
edits: $("#edit_user_1").serializeObject()
}),
…
您尝试过jQuery扩展方法吗?我不熟悉jquery。所以你可以给我一些指导sample@NithinViswanath您有两个json对象,所以创建一个jsonarray并放置这两个对象。是的。我也试过了。我不能得到一个肯定的结果。你应该在发布前在SO上搜索问题。与此相关的问题和解决方案已经发布。这些链接可能会有所帮助:@NithinViswanath:这是PHP语法吗?它看起来不像是有效的JSON。哪个终端显示这个?