I have some sample objects that will be included in an ArrayList, and these items must appear in the specific format, the problem that each item must be is a new position of an array in the json return.
follow the code I have developed so far:
import java.util.List;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
public class MyClass {
String text = "hi";
String language = "pt-br";
String item = "1";
public static void main(String args[]) {
MyClass myObj1 = new MyClass();
myObj1.text = "ola";
myObj1.language = "pt-br";
myObj1.item = "1";
MyClass myObj2 = new MyClass();
myObj2.text = "hi";
myObj2.language = "en";
myObj2.item = "1";
MyClass myObj3 = new MyClass();
myObj3.text = "holaa";
myObj3.language = "es";
myObj3.item = "2";
MyClass myObj4 = new MyClass();
myObj4.text = "olaaaaa";
myObj4.language = "pt-br";
myObj4.item = "2";
MyClass myObj5 = new MyClass();
myObj5.text = "helllooo";
myObj5.language = "eng";
myObj5.item = "3";
List<MyClass> lang = new ArrayList<MyClass>();
lang.add(myObj1);
lang.add(myObj2);
lang.add(myObj3);
lang.add(myObj3);
lang.add(myObj4);
ArrayList<HashMap<String, String>> lista = new ArrayList<>();
HashMap<String, String> mapa = new HashMap<>();
for(int i = 0; i < lang.size();i++) {
if(i > 0 && lang.get(i).item != lang.get(i-1).item) {
lista.add(mapa);
mapa.clear();
}
if(i == lang.size()-1){
lista.add(mapa);
mapa.clear();
}
mapa.put(lang.get(i).language, lang.get(i).text);
}
System.out.println(lista.toString());
}
}
which should be returned in this pattern:
[{
"item_id": 1,
"language": [{
"pt-br": "ola",
"en": "hii"
}]
}, {
"item_id": 2,
"language": [{
"es": "holaa",
"pt-br": "olaaaaa"
}]
}, {
"item_id": 3,
"language": [{
"eng": "helllooo"
}]
}]
the whole part of Spring is already implemented, I need to manipulate the result so that it is displayed correctly in my endpoint.
languageproperty of each item have to be an array if it's always going to contain one object?