从 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);
}
你好,我正在使用 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);
}