【发布时间】:2019-08-27 05:19:42
【问题描述】:
我有一个 json 字符串返回:
[{"TRAIN_JOURNEY_STAFF[],"ID":15,"EMAIL_ADDRESS":"jk@connectedrail.com","PASSWORD":"test","FIRST_NAME":"Joe","LAST_NAME":"Kevin","DATE_OF_BIRTH":"1996-04-20T00:00:00","GENDER":"Male","STAFF_ROLE":"Conductor","PHOTO":null},{new record..}]
这里有几条记录,我找不到将这个json字符串转换为单个对象的方法。我正在使用以下内容来读取数据:
StringBuffer response;
try (BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()))) {
String inputLine;
response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
}
System.out.print(response.toString());
}
我尝试了简单的 json 库,但解析器混淆了字符串,这并不理想,因为我需要将数据逐个对象输出到行对象到 jtables。
任何帮助将不胜感激。
使用 GSON 解决了以下问题。非常感谢大家!
JsonElement jelement = new JsonParser().parse(response.toString());
JsonArray jarray = jelement.getAsJsonArray();
JsonObject jobject = jarray.get(0).getAsJsonObject();
System.out.println(jobject.get("FIRST_NAME"));
【问题讨论】:
-
"TRAIN_JOURNEY_STAFF[] 看起来有问题.. 应该是
"TRAIN_JOURNEY_STAFF":[]? -
使用
JSON.parse(myObj)将简单的json 字符串转换为json。不需要任何额外的库。然而,正如@JackFlamp 提到的,那个 json 看起来格式不正确 -
是的,这很奇怪,它是我通过 GET 从数据库中获得的响应
-
要在 Java 中解析 JSON,请阅读 stackoverflow.com/questions/2591098/how-to-parse-json-in-java。但是你所拥有的不是 JSON,所以这无济于事。您应该专注于确定为什么您拥有的不是 JSON,而不是尝试解析它。