Without using GSON.
I'm attempting to pull the text value from the 'chores' array if there is a matching value in 'chore' array within myFilterObj object.
{
"chores": [
{
"text": "Wash the car",
"value": 1
},
{
"text": "Mow the lawn",
"value": 2
},
{
"text": "Vaccumm the floor",
"value": 3
},
{
"text": "Walk the dog",
"value": 4
}
],
"myFilterObj": {
"chore": [
1,
2
]
}
}
The first thing I did was convert them to ArrayLists.
Below are the two ArrayLists. My goal is to printout the text from first ArrayList if that value is in the second ArrayList.
For Example: Wash the car and Vaccumm the floor should printout since 1 and 2 are in the second ArrayList and 1 and 2 are values in the first ArrayList.
Here is what I have so far. I'm stuck on trying to do the comparison for allChores.value to value. I think I should be using removeAll or contains??
JSONArray allChores = data.getJSONArray("chores");
JSONArray myChores = myFilterObj.getJSONArray("chore");
ArrayList<Object> listdata1 = new ArrayList<Object>();
ArrayList<Object> listdata2 = new ArrayList<Object>();
if (allChores != null) {
for (int i = 0; i < allChores.length(); i++) {
//Adding each element of JSON array into ArrayList
listdata1.add(allChores.get(i));
}
}
if (myChores != null) {
for (int i = 0; i < myChores.length(); i++) {
//Adding each element of JSON array into ArrayList
listdata2.add(myChores.get(i));
}
}
//comapare allChores.value to myChores(value)
//printout allChores.text on match
[
{
"text":"Wash the car",
"value":1
},
{
"text":"Mow the lawn",
"value":7
},
{
"text":"Vaccumm the floor",
"value":2
},
{
"text":"Walk the dog",
"value":8
}
]
[
1,
2,
3
]
The following answer was composed under the assumption, that GSON can be used.
I would start by converting the input into POJOs. For that, I would introduce for every object in the input a separate record
Chore,McChoresandInputitself.Such that you can then create look up map of the chores
Results in