【问题标题】:How to remove unnecessary object names in String of JSONArray?如何删除 JSONArray 字符串中不必要的对象名称?
【发布时间】:2018-03-01 11:23:30
【问题描述】:

我有如下字符串格式的 JSONArray:

{
    "productsList": [{
            "map": {
                "productSubcategory": "Levensverzekering",
                "nameFirstInsured": "Akkerman"
            }
        },
        {
            "map": {
                "productSubcategory": "Lineair dalend",
                "nameFirstInsured": "Akkerman"
            }
        }
    ]
}

我想按如下方式转换这个字符串:

{
    "productsList": [{

            "productSubcategory": "Levensverzekering",
            "nameFirstInsured": "Akkerman"

        },
        {

            "productSubcategory": "Lineair dalend",
            "nameFirstInsured": "Akkerman"

        }
    ]
}

我已将 JSONArray 转换为 String,因此需要对提供的 JSON 格式的 String 上的 String 进行操作。 如何根据需要更改字符串?我应该在 jsonString.replaceAll("","") 函数中放入什么?

【问题讨论】:

  • 不,你不应该在字符串上这样做。处理实际对象,将其转换为您想要的形式 - 然后将其编码为 JSON。
  • JsonArray 实际上不包含那个“地图”字,但是当我将它应用到 Gson 时,它会自动将其视为各种不同的对象。这就是为什么我需要对字符串本身进行操作..
  • 不知道你在这里想说什么。将对象转换为 JSON 时不会神奇地出现键 - 该对象必须以该键开头。

标签: java json string logic


【解决方案1】:

没有简单的方法可以做到这一点,你必须这样做。

输出是:

{  
   "productsList":[  
      {  
         "productSubcategory":"Levensverzekering",
         "nameFirstInsured":"Akkerman"
      },
      {  
         "productSubcategory":"Lineair dalend",
         "nameFirstInsured":"Akkerman"
      }
   ]
}



import java.io.FileReader;
import java.io.IOException;

import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;


public class test {

    public static void main(String[] args) throws IOException, InterruptedException {
        JSONParser parser = new JSONParser();
        JSONObject newObj = new JSONObject();
        try {
            Object obj = parser.parse(new FileReader("test.json"));
            JSONObject jsonObject = (JSONObject) obj;
            JSONArray arr = (JSONArray) jsonObject.get("productsList");
            JSONArray newArr = new JSONArray();
            for(int i = 0 ; i < arr.size();i++){
                JSONObject object = (JSONObject) arr.get(i);
                JSONObject a = (JSONObject) object.get("map");
                newArr.add(a);
            }
            newObj.put("productsList", newArr);
            System.out.println(newObj);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-08
    • 1970-01-01
    • 2020-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-18
    相关资源
    最近更新 更多