如何删除 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 上使用的字符串数组?

如何使用骆驼杰克逊将 JSONArray 转换为对象列表

如何在 kotlin Android 中访问更大的 jsonArray json 中的 json 数组中的字符串

如何从 JSONArray 中删除特定元素?

JSONObject与JSONArray的使用3--Java对象属性的添加或删除(JsonConfig)

JSONArray jsonary = (JSONArray) JSONObject.parse(s); 是啥意思