如何在 JSONObjects
java android中删除重复的 JSONArray
我有这个代码而且我不知道如何删除重复项,根据数组字符串对象的数量和时间的重复值,但是我不知道怎么做,我对数组有点困惑
[
{
"isChecked": true,
"name": "weber",
"number": "+1912123456789",
"time": "28 nov., 08:06 PM",
"type": "all"
},
{
"isChecked": true,
"name": "weber",
"number": "+1912123456789",
"time": "28 nov., 08:06 PM",
"type": "all"
},
//Duplicatedhowremovethisifnumberisequalandtime{
"isChecked": true,
"name": "weber",
"number": "+1912123456789",
"time": "28 nov., 08:07 PM",
"type": "all"
}
]
感谢您的帮助
答案 0 :(得分:0)
默认情况下,JSON解析器允许重复,因此没有直接的方法来删除重复项。但是,有办法解决这个问题。您可以针对架构验证JSON。
如果使用Jackson,这里的设置将帮助您检测重复项:
final ObjectMapper mapper = new ObjectMapper();
mapper.enable(JsonParser.Feature.STRICT_DUPLICATE_DETECTION);
答案 1 :(得分:0)
您需要使用设置数据结构。设置商店唯一对象。如果您有自定义对象,则需要覆盖equals方法和哈希码方法。
答案 2 :(得分:0)
我得到了解决方案,我与你分享了
String getloglist = sp.getString(Constant.LOG, "");
ArrayList<String> listdata = new ArrayList<String>();
try {
// Load the data from json
JSONArray jsonArraylogs= new JSONArray(getloglist);
if (jsonArraylogs != null) {
for (int i=0;i<jsonArraylogs.length();i++){
listdata.add(jsonArraylogs.getString(i));
//Toast.makeText(context, ""+listdata+"", Toast.LENGTH_SHORT).show();
}
}
} catch (JSONException e) {
Toast.makeText(context, "error", Toast.LENGTH_SHORT).show();
e.printStackTrace();
}
//Toast.makeText(context, ""+listdata+"", Toast.LENGTH_SHORT).show();
ArrayList<String> values=new ArrayList<String>();
HashSet<String> hashSet = new HashSet<String>();
hashSet.addAll(listdata);
listdata.clear();
listdata.addAll(hashSet);
Toast.makeText(context, ""+listdata+"", Toast.LENGTH_SHORT).show();