如何在JSONArray的String中删除不必要的对象名称?

时间:2017-09-20 11:54:45

标签: java json string logic

我有String格式的JSONArray如下:

AAC with no global headers is currently not supported

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

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

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

1 个答案:

答案 0 :(得分: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();
        }
    }
}