如何删除 JsonObject 中的键名?

How to remove the key name in JsonObject?

我在下面有这个 JsonObject :

[
 {"ContactNumber":"+91 98765 12345"},
 {"ContactNumber":"+91 123 456 7890"}
]

因为 "ContactNumber" 重复..如果我有 5000 个联系人,它会重复..所以我需要删除 jsonObject 中的键名 "ContactNumber" 这样新的 JsonObject 看起来像这样:

"contacts" : [ 
   "+911234567890",
   "+911234567890",
   "+911234567890",
   "+911234567890",
   "+911234567890"
    ]

实际上我正在尝试将自定义列表转换​​为 JsonObject ..这是我的代码片段

Gson gson = new Gson();
String data = gson.toJson(reqContacts); // reqContacts is Custom list
JsonArray jsonArray = new JsonParser().parse(data).getAsJsonArray();

试试这个

try {
    // jsonString is a string variable that holds the JSON 
    JSONArray itemArray=new JSONArray(jsonString);
    for (int i = 0; i < itemArray.length(); i++) {
        int value=itemArray.getInt(i);
        Log.e("json", i+"="+value);
    }
} catch (JSONException e) {
    e.printStackTrace();
}

试试这个。

    try {
        String data = "[{\"ContactNumber\":\"+91 98765 12345\"}, " +
                "{\"ContactNumber\":\"+91 123 456 7890\"}]";
        JSONArray arr1 = new JSONArray();
        JSONArray arr = new JSONArray(data);
        for (int i = 0; i < arr.length(); i++) {
            JSONObject obj = arr.getJSONObject(i);
            arr1.put(obj.getString("ContactNumber"));
        }
        JSONObject result = new JSONObject();
        result.put("contacts", arr1);
        System.out.println(""+result);
    } catch (Exception e) {
        e.printStackTrace();
    }

只需写 Object.values(myJsonObject),其中 myJsonObject 是您要提取其值的 Json。这将 return 一个没有键的值数组。

要将这些存储为 Json 数组,您可以构造新数组即

{'contacts': Object.values(myJsonObject)}