大家好,我需要你的帮助。如何从我的json响应中删除它?
[
{
"Woa": [
"Seo",
"Rikjeo",
"JDa"
]
},
"Aha",
"Aad",
"Char"
]
我想删除它:
{
"Woa": [
"Seo",
"Rikjeo",
"JDa"
]
}
这是我到目前为止所尝试的:
for (int i = 0; i < array.length(); ++i) {
list.add(array.getString(i));
}
list.remove(0);
但它仍然没有删除。我怎么做?任何想法将不胜感激
编辑list.remove(1)到(0)
答案 0 :(得分:1)
删除项目后,您需要使用列表再次创建JSON。
list.remove(1);
JSONArray jsArray = new JSONArray(list);
如果要将JSONArray转换为JSON字符串:
jsArray.toString()
答案 1 :(得分:0)
您的列表将被更新,而不是您的JSON对象。
为什么不使用JSONparser
。
JSONObject obj = new JSONObject(mystring);
obj.remove("entryname");
答案 2 :(得分:0)
你应该做一些更通用的东西,这样你就不必在JSON改变的时候修改你的代码。例如:
//here we create the JSONArray object from the string that contains the json data
JSONArray array = new JSONArray(myJsonString);
//here we create a list that represents the final result - a list of Strings
List<String> list = new ArrayList<>();
//here we parse every object that the JSONArray contains
for (int i = 0; i < array.length(); i++) {
//if the current item is an JSONObject, then we don't need it, so we continue our iteration
//this check is not necessary because of the below check,
//but it helps you see things clearly: we IGNORE JSONObjects from the array
if (array.get(i) instanceof JSONObject) {
continue;
}
//if our current object is a String, we add it to our final result
if (array.get(i) instanceof String) {
list.add(array.getString(i));
}
}
答案 3 :(得分:0)
一个问题是您尝试删除的元素是第一个元素,而JSONArray
对象的第一个元素的索引是零。
您正在调用list.remove(1)
,删除数组的第二个元素。
以下就足够了:
list.remove(0);
......没有之前的东西。
如果这不起作用,那么我的猜测是你要删除元素太晚了;即 之后JSONArray
对象已被序列化。但是,我们需要查看更多(相关)代码。
JSONArray
的Android文档未提及数组索引从零开始。但是,确实如此。我检查了源代码。此外,大多数其他Java数据结构(数组,列表等)使用从零开始的索引。 (一个值得注意的例外是在W3C DOM API上建模的Java数据结构。)
答案 4 :(得分:0)
你可以将你的字符串解析为JSONArray,数组的第一个元素就是你想要的。
@Test
public void test() {
String str = "[ {\"Woa\": [\"Seo\",\"Rikjeo\",\"JDa\"]},\"Aha\",\"Aad\",\"Char\"]";
try {
JSONArray array;
array = new JSONArray(str);
System.out.println(array);
System.out.println(array.get(0));
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
[{ “吁”:[ “徐”, “Rikjeo”, “JDA”]}, “啊”, “阿德”, “字符”]
{ “吁”:[ “徐”, “Rikjeo”, “JDA”]}
通过:测试
答案 5 :(得分:0)
您可以逐个删除
while (user_data.length() > 0) {
user_data.remove(user_data.keys().next());
}