Javascript jQuery:如何将2个请求结果连接到json服务器?
我想知道我们能不能做点什么Javascript jQuery:如何将2个请求结果连接到json服务器?,javascript,jquery,json,service,request,Javascript,Jquery,Json,Service,Request,我想知道我们能不能做点什么 var joinedJSON; $.get("server.json?action=type&type=image", function(json) {joinedJSON +=json ; } $.get("server.json?action=type&type=jpg", function(json) {joinedJSON +=json ; } $.get("server.json?action=type&type=png",
var joinedJSON;
$.get("server.json?action=type&type=image", function(json) {joinedJSON +=json ; }
$.get("server.json?action=type&type=jpg", function(json) {joinedJSON +=json ; }
$.get("server.json?action=type&type=png", function(json) {joinedJSON +=json ; }
$.get("server.json?action=type&type=tiff", function(json) {joinedJSON +=json ; }
虽然每个请求都会向我们提供此类JSON数据:
[
{
"href": "bf051e8675b11c72eec781e855593589a086d2295378b96a8b7269c31b8fa673.user.file",
"title": "Привет Мир.jpg",
"user_name": "Oleg.Jakushkin@gmail.com",
"modified": "2012-01-16 07:24:11",
"is_public": 0,
"size": 65516
},
{
"href": "abd01be9a0830579d6366e48fc0c48d4c7cc350d80719843ca84c782346626f6.user.file",
"title": "",
"user_name": "Oleg.Jakushkin@gmail.com",
"modified": "2012-01-16 07:24:19",
"is_public": 0,
"size": 89782
},
{
"href": "0a27fd3b563b2877c3a072648e0f7c2a57539f3aba4ce688c7774eca6b70774e.user.file",
"title": "Привет Мир 2.jpg",
"user_name": "Oleg.Jakushkin@gmail.com",
"modified": "2012-01-16 07:24:29",
"is_public": 1,
"size": 58574
}
]
我们会得到一个长数组吗?我们会记住某些项可能会重复(C++中的multymap)?一旦您(或您的代码)将返回的JSON字符串解析为数组,您就可以使用.concat()将这两个数组合并为一个数组
var jsontotal = json1.concat(json2);
一旦您(或您的代码)将返回的JSON字符串解析为数组,就可以使用.concat()将这两个数组合并为一个数组
var jsontotal = json1.concat(json2);
您可以创建响应数组并合并
您可以创建响应数组并合并
注意,数组上的添加操作
+
没有在Javascript中定义。它不是将一个数组扩展为另一个数组,而是将它们强制为字符串并连接起来
[1,2,3] + [4,5,6] // will produce '1,2,34,5,6'
您应该改用concat
[1,2,3].concat([4,5,6])
另外,请注意,$.get
是一个异步函数。如果您只是在提供的代码中序列化它们,您将不知道所有请求何时完成。相反,您应该尝试在前一个请求的回调函数中发出每个请求。这确保了每个请求都是在收到前一个请求的响应后发出的
var joinedJSON = [];
$.get("server.json?action=type&type=image", function(json) {
joinedJSON.concat(json);
$.get("server.json?action=type&type=jpg", function(json) {
joinedJSON.cancat(json);
}
}
如果你发现嵌套回调是丑陋的,你可以考虑使用.< /p>
注意,在JavaScript中没有定义添加操作<代码> > +代码>。它不是将一个数组扩展为另一个数组,而是将它们强制为字符串并连接起来
[1,2,3] + [4,5,6] // will produce '1,2,34,5,6'
您应该改用concat
[1,2,3].concat([4,5,6])
另外,请注意,$.get
是一个异步函数。如果您只是在提供的代码中序列化它们,您将不知道所有请求何时完成。相反,您应该尝试在前一个请求的回调函数中发出每个请求。这确保了每个请求都是在收到前一个请求的响应后发出的
var joinedJSON = [];
$.get("server.json?action=type&type=image", function(json) {
joinedJSON.concat(json);
$.get("server.json?action=type&type=jpg", function(json) {
joinedJSON.cancat(json);
}
}
<>如果你发现嵌套回调是丑陋的,你可以考虑使用./p>原则上你可以做到这一点。但是,您可能需要手动编写一些粘合代码。特别是,因为JSON数据没有足够的语义来允许自动完成这项工作。原则上,您可以这样做。但是,您可能需要手动编写一些粘合代码。特别是,因为JSON数据没有足够的语义来允许自动完成这项工作。