2个json
api1
[0.03,0.66,0.41,0.01,0.04,0.07,0.16,0.87,3.52,2.43,2.65,5.8,5.76]
api2
[2019,2018,2017,2015,2014,2013,2012,2011,2010,2009,2008,2005,2004]
是否能合并,合并之后,前端success使用,应该怎么区分
```javascript
url: '/api_app/api1', //仅为示例,并非真实接口地址。
method: 'get',
dataType: 'json',
//withCredentials:true,
xhrFields: {
withCredentials: true
},
crossDomain: true,
success: (res) => {
this.categories = res.data;
console.log(res.data);
}
url: '/api_app/api2', //仅为示例,并非真实接口地址。
method: 'get',
dataType: 'json',
//withCredentials:true,
xhrFields: {
withCredentials: true
},
crossDomain: true,
success: (res) => {
this.tipoc = res.data;
console.log(res.data);
}
```
function extend() {
var length = arguments.length;
if(length == 0)return {};
if(length == 1)return arguments[0];
var target = arguments[0] || {};
for (var i = 1; i < length; i++) {
var source = arguments[i];
for (var key in source) {
if (source.hasOwnProperty(key)) {
target[key] = source[key];
}
}
}
return target;
}
const obj1 = { a: 1, b: 2 };
const obj2 = { b: 3, c: 4, d: 5 };
const result = extend(obj1, obj2);
console.log(result);//{ a: 1, b: 3, c: 4, d: 5 }
const obj1 = { a: 1, b: 2 };
const obj2 = { b: 3, c: 4, d: 5 };
const result = Object.assign(obj1, obj2);
console.log(result);//{ a: 1, b: 3, c: 4, d: 5 }
const jsdom = require("jsdom");
const { JSDOM } = jsdom;
const { window } = new JSDOM(`<!DOCTYPE html>`);
const $ = require('jQuery')(window);
const obj1 = { a: 1, b: 2 };
const obj2 = { b: 3, c: 4, d: 5 };
const result = $.extend(obj1, obj2);
console.log(result);//{ a: 1, b: 3, c: 4, d: 5 }
如果只有两个的话,最简单的办法就是把两个嵌套起来。
api1的成功回调中再去发起api2的请求
如果过多,请用promise,或者其他的办法
var json3 = {...json1,...json2}
使用结构赋值 json={...json1,...json2}
相同的键,他会拿后面一个json的值
看上面回答好像大家没有关注到你的是否可以合并的这个疑问。
目前来看是可以的
[0.03,0.66,0.41,0.01,0.04,0.07,0.16,0.87,3.52,2.43,2.65,5.8,5.76]
[2019,2018,2017,2015,2014,2013,2012,2011,2010,2009,2008,2005,2004]
=》 合并成list
[{"year": 2019, percent: 0.03},{"year": 2018, percent: 0.66},...,{"year": 2014, percent: 5.76}]
或者用特殊符号连接起来
[2019-0.03,2018-0.66,...,2004-5.76]
前段获取数组的时候
如果是第一种数组
for(var i = 0; i < res.data.length; i++) {
res.data[i].year
res.data[i].percent
}
第二种数组
按照-进行分割成
```javascript
for(var i = 0; i < res.data.length; i++) {
var str = res.data[i]
var arr = str.split("-")
var year = arr[0]
var percent = arr[1]
}
```
如给您提供了思路,请采纳
方法如下,如果对你所有帮助望采纳
如果2个json之间有对应关系,后台可以修改数据结构,返回list集合对应的json数据(比如List<Result> jsonResult),
然后自己声明Result实体类,包含两个属性,double percent和String year即可;如果2个json没有对应关系,可以返回map对象对应的json数据,map包含两个key,
一个为百分比percent的key,一个为year的key,对应的值可以为百分比和年份的集合(示例代码 map.put("percent",percentList),map.put("year",yearList)))
最简单的办法
[...json1, ...json2]
仅从你提供和两个数组来看,合并后前端取值时可以判断是否是小数来做区分,
es6 语法 可以将两个数组合并,看看对你有帮助没
var json3 = {...json1,...json2}