不使用GSON库的情况下,我正在尝试从'chores'数组中提取文本值,条件是该值在'myFilterObj'对象的'chore'数组中有匹配项。
给定的JSON数据如下:
{
"chores": [
{
"text": "洗车",
"value": 1
},
{
"text": "修剪草坪",
"value": 2
},
{
"text": "吸尘地板",
"value": 3
},
{
"text": "遛狗",
"value": 4
}
],
"myFilterObj": {
"chore": [
1,
2
]
}
}
首先,我已经将它们转换为ArrayList。
以下是两个ArrayList。我的目标是如果第一个ArrayList中的值存在于第二个ArrayList中,则打印出第一个ArrayList中的文本。
例如:由于1和2在第二个ArrayList中,并且1和2也是第一个ArrayList中的值,所以应该打印出“洗车”和“吸尘地板”。
这是我目前的实现,但在比较allChores.value与value时遇到了困难。我认为可能需要使用removeAll或contains方法。
JSONArray allChores = data.getJSONArray("chores");
JSONArray myChores = myFilterObj.getJSONArray("chore");
ArrayList<Object> listdata1 = new ArrayList<>();
ArrayList<Object> listdata2 = new ArrayList<>();
if (allChores != null) {
for (int i = 0; i < allChores.length(); i++) {
// 将JSON数组中的每个元素添加到ArrayList中
listdata1.add(allChores.get(i));
}
}
if (myChores != null) {
for (int i = 0; i < myChores.length(); i++) {
// 将JSON数组中的每个元素添加到ArrayList中
listdata2.add(myChores.get(i));
}
}
// 比较allChores中的value与myChores的value
// 匹配时打印出allChores的text
示例数据:
[
{
"text": "洗车",
"value": 1
},
{
"text": "修剪草坪",
"value": 7
},
{
"text": "吸尘地板",
"value": 2
},
{
"text": "遛狗",
"value": 8
}
]
[
1,
2,
3
]