zoukankan      html  css  js  c++  java
  • JSONArray 去重

    前台说 只能传给我这样的数据

    [
        {
            "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);
                        }
                    }
                }

    找到那个感觉 就算打开了那个脑洞

    本文来自博客园,作者:xiao~xiao,转载请注明原文链接:https://www.cnblogs.com/angin-iit/p/9072011.html

  • 相关阅读:
    以下文件中的行尾不一致。要将行尾标准化吗
    用户 NT AUTHORITYNETWORK SERVICE 登录失败
    sql server 2008 不允许保存更改,您所做的更改要求删除并重新创建以下表 的解决办法
    附加数据库对于服务器失败(Microsoft.SqlServer.Smo),无法升级数据库,因为它是只读的,或者具有只读文件
    IIS上部署MVC网站,打开后ExtensionlessUrlHandler-Integrated-4.0解决方法
    HTTP 错误 404.2
    vs智能提示突然消失的解决办法 (vs2008 vs2010 vs2012 智能提示)
    Visual Studio 常用快捷键
    403.14-Forbidden Web 服务器被配置为不列出此目录的内容及Login on failed for "IIS APPPOOLASP.NET v4.0"问题
    短信轰炸PC版
  • 原文地址:https://www.cnblogs.com/angin-iit/p/9072011.html
Copyright © 2011-2022 走看看