Как удалить имя ключа в 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)}