Получить дочерние элементы JSONArray - PullRequest
0 голосов
/ 04 августа 2020

Как я могу получить потомков JSONArray? Я пытаюсь получить результаты запроса Elasticsearch JSON в таблице с помощью Thymeleaf (Spring Boot). Хотите отображать результаты в виде таблицы, не можете использовать DTO для результатов. Или альтернативный метод должен использовать Javascript?

Текущий выход: enter image description here

Desired Output: i want to show id, fullname, lastname seperately. Firstly need to get child of elements, _source; then child of _source, every fullname, lastname, id enter image description here

String json = searchService.searchFromQuery(query.trim().toLowerCase()).getElements(); 
JSONArray jsonObj = new JSONArray(json);

                      
        model.addAttribute("query", jsonObj); //related with thymeleaf

JSON:

{"highlight":{"lastName":["Asdfasd<\/em>"]},"_index":"user","_type":"_doc","_source":{"firstName":"Test","lastName":"Asdfasd","modificationDate":1595572482000,"_class":"com.example.springmysqlelastic.model.UserModel","id":1},"_id":"1","sort":[1],"_score":null}

{"highlight":{"lastName":["sadasd<\/em>"]},"_index":"user","_type":"_doc","_source":{"firstName":"asfas","lastName":"sadasd","modificationDate":1595572482000,"_class":"com.example.springmysqlelastic.model.UserModel","id":2},"_id":"2","sort":[2],"_score":null}

Thymeleaf HTML (just related part)

 

1 Ответ

0 голосов
/ 04 августа 2020

Вот еще одна реализация с использованием библиотеки из json .org.

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

public class ProcessJson {
 public void test(String str) throws JSONException {
  JSONObject json = new JSONObject(str);  //initial JSONObject (See explanation 
                                             //section below)
  JSONArray jsonArray = json.getJSONArray("results");  //"results" JSONArray
  JSONObject item=jsonArray.getJSONObject(0);//1st JSONObject inside "results" JSONArr 

  JSONArray jsonArrayTimes = item.getJSONArray("times");  //"times" JSONArray

  for (int i = 0; i < jsonArrayTimes.length(); i++) {
        System.out.println(jsonArrayTimes.getInt(i));
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...