如何删除 JSONArray 字符串中不必要的对象名称?
Posted
技术标签:
【中文标题】如何删除 JSONArray 字符串中不必要的对象名称?【英文标题】:How to remove unnecessary object names in String of 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 时不会神奇地出现键 - 该对象必须以该键开头。 【参考方案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();
【讨论】:
以上是关于如何删除 JSONArray 字符串中不必要的对象名称?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 JsonArray 对象转换为要在 spinner java android 上使用的字符串数组?
如何在 kotlin Android 中访问更大的 jsonArray json 中的 json 数组中的字符串