从 JSON String in Java 获取属性值

Getting attribute values from JSON String in Java

你好,我正在使用 Thymeleaf 构建一个 Spring 启动应用程序,我从 API 收到一个 JSON,我必须将其放入 HTML 页面。这是 JSON:

{"mesaje":[{"data_creare":"202205191249","cif":"1111111111118","id_solicitare":"205804","detalii":"Erori de validare identificate la factura primita cu id_incarcare=205804","tip":"ERORI FACTURA","id":"9279339"}

这是我试过的:

    String raspuns = service.getListaMesaje(zile, select);
     System.out.println("------------------------"+raspuns);
       JsonParser parser = new JsonParser();
JsonObject obj = parser.parse(raspuns).getAsJsonObject();
//String eroare = obj.get("eroare").getAsString();
String mesaje = obj.get("mesaje").getAsString();

        JSONObject responseObject = new JSONObject(raspuns);       
        JSONArray jsonArray = (JSONArray) responseObject.get("mesaje");
        JSONObject jsonObject = (JSONObject) jsonArray.get(0);
        String dataCreare  = jsonObject.getString("data_creare");
       
        
        model.addAttribute("data_creare", dataCreare);

在控制台中打印 JSON 但我在控制台中也收到此错误:

java.lang.IllegalStateException: null

谁能告诉我如何从 JSON 中的 mesaje parent 中提取值的示例?

谢谢

我建议你为此使用 gson 库。

然后,在 pom.xml 中添加 gson 依赖项后,您可以使用以下几行代码从 JSON 字符串中提取值:

String raspuns = "{\"mesaje\":[{\"data_creare\":\"202205191249\",\"cif\":\"1111111111118\",\"id_solicitare\":\"205804\",\"detalii\":\"Erori de validare identificate la factura primita cu id_incarcare=205804\",\"tip\":\"ERORI FACTURA\",\"id\":\"9279339\"}]}";




 JsonObject jsonObject = new JsonParser().parse(raspuns).getAsJsonObject();
 JsonArray arr = jsonObject.getAsJsonArray("mesaje");
    for (int i = 0; i < arr.size(); i++) {
        String data_creare = arr.get(i).getAsJsonObject().get("data_creare").getAsString();
        String cif = arr.get(i).getAsJsonObject().get("cif").getAsString();
        String id_solicitare = arr.get(i).getAsJsonObject().get("id_solicitare").getAsString();
        String detalii = arr.get(i).getAsJsonObject().get("detalii").getAsString();
        String tip = arr.get(i).getAsJsonObject().get("tip").getAsString();
        String id = arr.get(i).getAsJsonObject().get("id").getAsString();
        System.out.println(data_creare);
        System.out.println(cif);
        System.out.println(tip);
        System.out.println(id_solicitare);
        System.out.println(detalii);
        System.out.println(id);
}