Пока что у меня есть:
Каталог, содержащий две папки:
.. \ Data \ BeforeModern
.. \ Data \ AfterModern
Каждая папка (BeforeModern и AfterModern) содержит 4 JSON-файла ( AU, UK, US, IND );
Файл Json содержит определенное имя поля (язык), которое меня интересует.
например, в AU JSON в BeforeModern lang равен
Language["English","Spanish"]
в AFterModern lang это что-то вроде этого:
Language["English","Spanish","Arabic"]
Я хочу напечатать результат, как показано ниже:
**BeforeModern** **AfterModern**
English English
AU : Spanish Spanish
Urdu
Мой подход до сих пор:
for (File beforeFile: new File(locationPath).listFiles()) {
File afterFile= new File(locationPath.replace("BeforeModern", "AfterModern") + "\\" + locFile.getName());
if (afterfile.exists()) {
ObjectMapper mapper = new ObjectMapper();
JsonNode tree1 = mapper.readTree(beforeFile); //Parse Specific JSON from BeforeModern Location
JsonNode tree2 = mapper.readTree(afterFile); //Parse Specific JSON from AfterModern Location
if (tree1.has("Language") && tree2.has("Language")) {
JsonNode sup_loc = tree1.get("Language");
List<String> list1 = new ArrayList<>();
sup_loc.forEach(l -> list1.add(l.asText()));
JsonNode sup_rent = tree2.get("Language");
List<String> list2 = new ArrayList<>();
sup_rent.forEach(l -> list2.add(l.asText()));
int rows = Math.max(list1.size(), list2.size());
Map<String, String> hash= new HashMap<>();
for (int i=0;i<rows;i++){
hash.put(list1.get(i),list2.get(i));
}
Map<String,Map<String,String>> map = new HashMap<>();
map.put(beforeFile.getName(),hash);
map.entrySet().forEach((k)->System.out.println(k.getKey()+" "+k.getValue()));
//hash.entrySet().forEach((k)->System.out.println(k.getKey()+" "+k.getValue()));
System.out.println("________________________________________________________________________________");