一个接口的格式让我转换了很久,关键是自己没绕清楚-->
将如下格式
{
"0":
[
{"CDF"=26533039.469953783},
{
"data": 8170396.845451221,
"name": "FCZ"
},
{
"data": 44017461.58925395,
"name": "FOC"
},
{
"data": 31342464.874329574,
"name": "FTX"
},
{
"data": 20781123.406772435,
"name": "FJZ"
}
],
"1":
[
{
"data": 4745196,
"name": "CDF"
},
{
"data": 4242578.04442152,
"name": "FJZ"
},
{
"data": 10727225.069249999,
"name": "FOC"
},
{
"data": 6443384.8794,
"name": "FTX"
}
],
"2":
[
{
"data": 19309465.21733437,
"name": "CDF"
},
{
"data": 1251297.4700612198,
"name": "FCZ"
},
{
"data": 32773415.813453887,
"name": "FOC"
},
{
"data": 22407779.874329574,
"name": "FTX"
},
{
"data": 16784998.655292396,
"name": "FJZ"
}
],
"3":
[
{
"data": 11968770.2526194,
"name": "CDF"
},
{
"data": 6919099.37539,
"name": "FCZ"
},
{
"data": 21971270.845049996,
"name": "FOC"
},
{
"data": 15378069.8794,
"name": "FTX"
},
{
"data": 8238702.79590152,
"name": "FJZ"
}
]
}
转换成:
{
"status": 0,
"errmsg": "",
"payload": {
"series": [
{
"data": [
26533473.941603787,
4745196,
26533473.941603787,
4745196
],
"name": "CDF"
},
{
"data": [
8170396.845451221,
0,
4283893.885451222,
3886502.96
],
"name": "FCZ"
},
{
"data": [
44037800.57695395,
10727225.069249999,
36498540.49695395,
18266485.149249997
],
"name": "FOC"
},
{
"data": [
31288313.720709573,
6443384.8794,
35415908.60010969,
2315790
],
"name": "FTX"
},
{
"data": [
22023258.004772432,
4242578.04442152,
23663317.271842975,
2602518.777351
],
"name": "FJZ"
}
],
"Axis_data": [
"0",
"1",
"2",
"3"
]
}
}
代码如下:
public static Map<Object, Object> TurnDataType(List<Map> listMap){
List listR = new ArrayList<>();
List listX = new ArrayList<>();
Map<Object, Object> resMap = new HashMap<>();
List<Map> series = new ArrayList<Map>(); //by xie
listR = removeDuplicate(listOnly(listMap));
for(int i = 0 ; i < listR.size(); i++) {
Map<Object, Object> m = new HashMap<>(); //by xie
List<Double> d = new ArrayList<Double>(); //by xie
m.put("name", listR.get(i)); //by xie
m.put("data", d);
for(int j = 0; j < listMap.size(); j++) {
Map map=listMap.get(j);
if (!(map.get("0").toString().isEmpty())) {
listX.add("Top 10");
boolean isNull = true; //by xie
for(Map map1:(List<Map>)map.get("0")) {
if (map1.get("name").equals(listR.get(i))) {
d.add(Double.parseDouble(map1.get("data").toString())); //by xie
isNull = false; //by xie
}
}
if (isNull) d.add(0.0); //by xie
}
if (!(map.get("1").toString().isEmpty())) {
listX.add("No Top 10");
boolean isNull = true; //by xie
for(Map map1:(List<Map>)map.get("1")) {
if (map1.get("name").equals(listR.get(i))) {
d.add(Double.parseDouble(map1.get("data").toString())); //by xie
isNull = false; //by xie
}
}
if (isNull) d.add(0.0); //by xie
}
if (!(map.get("2").toString().isEmpty())) {
listX.add("Top 20");
boolean isNull = true; //by xie
for(Map map1:(List<Map>)map.get("2")) {
if (map1.get("name").equals(listR.get(i))) {
d.add(Double.parseDouble(map1.get("data").toString())); //by xie
isNull = false; //by xie
}
}
if (isNull) d.add(0.0); //by xie
}
if (!(map.get("3").toString().isEmpty())) {
listX.add("No Top 20");
boolean isNull = true; //by xie
for(Map map1:(List<Map>)map.get("3")) {
if (map1.get("name").equals(listR.get(i))) {
d.add(Double.parseDouble(map1.get("data").toString())); //by xie
isNull = false; //by xie
}
}
if (isNull) d.add(0.0); //by xie
}
}
series.add(m);
}
resMap.put("Axis_data", removeDuplicate(listX));
resMap.put("series", series);
return resMap;
}