【问题标题】:json parsing in java languagejava语言中的json解析
【发布时间】:2015-10-07 20:12:20
【问题描述】:

[{"name":"RAJGOWTHAMAN R","branch":"B.Tech - 信息技术","details":[{"semester":"6","subcode":"10 IT 611" ,"subname":"面向对象分析与设计","grade":"C","re​​sult":"Pass"},{"semester":"6","subcode":"10 IT 612"," subname":"Visual Programming","grade":"C","re​​sult":"Pass"},{"semester":"6","subcode":"10 IT 613","subname":"Web Technology","grade":"E","re​​sult":"Pass"},{"semester":"6","subcode":"10 IT 614","subname":"密码学和网络安全", "grade":"E","re​​sult":"Pass"},{"semester":"6","subcode":"10 IT 615","subname":"系统软件","grade":" D","re​​sult":"Pass"},{"semester":"6","subcode":"10 IT 6P1","subname":"Visual Programming Laboratory","grade":"A"," result":"Pass"},{"semester":"6","subcode":"10 IT 6P2","subname":"CASE Tools Laboratory","grade":"C","re​​sult":" Pass"},{"semester":"6","subcode":"10 IT 6P3","subname":"Web Technology Laboratory","grade":"S","re​​sult":"Pass"}, {"semester":"6","subcode":"10 IT E13","subname":"软件质量管理","grade":" RA","结果":"失败"}]}]

如何解析上面的json

【问题讨论】:

标签: java json parsing


【解决方案1】:

Java 中有许多可用的 JSON 库:

这里的代码 sn-p 使用 json-simple 解析 JSON 字符串:

import org.json.simple.JSONObject;
import org.json.simple.JSONArray;
import org.json.simple.JSONValue;

...
String jsonLine = "[{ ... }]";
// first have to parse JSON into object
Object obj = JSONValue.parse(jsonLine);
JSONArray array = (JSONArray)obj;
JSONObject value = (JSONObject)array.get(0);
// JSONObject extends HashMap so can access properties as any Map
System.out.println("keys=" + value.keySet());
JSONArray details = (JSONArray) value.get("details");
// do something with details object

从您的示例中,这将输出:

keys=[name, details, branch]

json-simple 有很多解码 JSON 的例子:
https://github.com/fangyidong/json-simple/wiki

使用 gson 的代码几乎相同:

JsonElement jelement = new JsonParser().parse(jsonLine);
JsonElement value = jelement.getAsJsonArray().get(0);
JsonArray details = value.getAsJsonObject().get("details").getAsJsonArray();

【讨论】:

  • 简单的json没有问题...但是嵌套数组json呢
  • 对于嵌套数组,您可以访问“详细信息”值,然后转换为 JSONArray,然后遍历这些值。查看javadoc 获取 json-simple 以了解 API 使用情况。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-03
  • 2013-09-12
相关资源
最近更新 更多