前台说 只能传给我这样的数据
[
{
"labelName":"皮肤颜色",
"type":"info",
"labelCode":"la2018052100002",
"labelValue":"黄色皮肤"
},
{
"labelName":"皮肤颜色",
"type":"info",
"labelCode":"la2018052100002",
"labelValue":"黑色皮肤"
},
{
"labelName":"皮肤颜色",
"type":"info",
"labelCode":"la2018052100002",
"labelValue":"白色皮肤"
}
]
而我想要的是
[{
"labelCode": "la2018052100002",
"labelName": "皮肤颜色",
"labelValue": "黑色皮肤,白色皮肤,黄色皮肤"
}]
只好在后台做去重操作 方法如下:
//前台传来的 新增标签列表
JSONArray jsonArray = JSONArray.fromObject(paramsJson.optString("labelList"));
JSONArray arrayTemp = new JSONArray();//临时数组
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject oldJson =jsonArray.getJSONObject(i);
//重新组织后 要使用的数据
JSONObject newJson = new JSONObject();
newJson.put("labelCode", oldJson.optString("labelCode"));
newJson.put("labelValue", oldJson.optString("labelValue"));
newJson.put("labelName", oldJson.optString("labelName"));
if (i == 0) {
// 添加第一条数据
arrayTemp.add(newJson);
} else {
boolean flag = false;//是否有重复数据 标识
for (int j = 0; j < arrayTemp.size(); j++) {
JSONObject compJson = arrayTemp.getJSONObject(j);
String oldLabelCode = oldJson.optString("labelCode");
String newLabelCode = compJson.optString("labelCode");
if (oldLabelCode.equals(newLabelCode)) {
arrayTemp.remove(j);
compJson.put("labelValue", compJson.optString("labelValue") +","+ oldJson.optString("labelValue"));
arrayTemp.add(compJson);
flag=true;
break;
}
}
//没有重复 则新增
if (!flag) {
arrayTemp.add(newJson);
}
}
}