Как удалить имя ключа в JsonObject?

У меня есть этот JsonObject ниже:

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

Так как "ContactNumber" повторяется... Если у меня есть 5000 контактов, он будет повторяться... Так что мне нужно удалить имя ключа "ContactNumber" в jsonObject, так что новый 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();

3 ответа

Решение

Попробуй это.

    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();
    }

Попробуй это

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();
}

Просто пиши Object.values(myJsonObject) где myJsonObject это Json, чьи значения вы хотите извлечь. Это вернет массив значений без ключей.

Чтобы сохранить их как массив Json, вы можете создать новый массив, а именно

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

Другие вопросы по тегам