我在下面有这个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();
答案 0 :(得分:2)
试试这个。
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();
}
答案 1 :(得分:0)
试试这个
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();
}
答案 2 :(得分:0)
只需编写Object.values(myJsonObject)
,其中myJsonObject
是要提取其值的Json。这将返回值的数组,而不是键。
要将这些存储为Json数组,您可以构建新数组viz
{'contacts': Object.values(myJsonObject)}