如何删除JsonObject中的键名?

时间:2017-06-23 04:53:01

标签: android json custom-lists

我在下面有这个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();

3 个答案:

答案 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)}