Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java语言中的json解析_Java_Json_Parsing - Fatal编程技术网

java语言中的json解析

java语言中的json解析,java,json,parsing,Java,Json,Parsing,[{名称:RAJGOWTHAMAN R,分支:B.Tech-信息技术,详细信息:[{学期:6,子代码:10 IT 611,子名称:面向对象分析与设计,成绩:C,结果:通过},{学期:6,子代码:10 IT 612,子名称:可视化编程,成绩:C,结果:通过},{学期:6,子代码:10 IT 613,子名称:Web技术,成绩:E,结果:通过},{学期:6,子代码:10 IT 614,子名称:密码学和网络安全,等级:E,结果:通过},{学期:6,子代码:10 IT 615,子名称:系统软件,等级:D,

[{名称:RAJGOWTHAMAN R,分支:B.Tech-信息技术,详细信息:[{学期:6,子代码:10 IT 611,子名称:面向对象分析与设计,成绩:C,结果:通过},{学期:6,子代码:10 IT 612,子名称:可视化编程,成绩:C,结果:通过},{学期:6,子代码:10 IT 613,子名称:Web技术,成绩:E,结果:通过},{学期:6,子代码:10 IT 614,子名称:密码学和网络安全,等级:E,结果:通过},{学期:6,子代码:10 IT 615,子名称:系统软件,等级:D,结果:通过},{学期:6,子代码:10 IT 6P1,子名称:可视化编程实验室,等级:A,结果:通过},{学期:6,子代码:10 IT 6P2,子名称:案例工具实验室,等级:C,结果:通过},{学期:6,子代码:10 IT 6P3,子名称:网络技术实验室,成绩:S,结果:通过},{学期:6,子代码:10 IT E13,子名称:软件质量管理,成绩:RA,结果:失败}]]


如何解析上述json

Java中有许多可用的json库:

下面是使用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
根据您的示例,这将输出:

json simple有许多解码json的示例:

使用gson时,代码几乎相同:

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

在询问之前,请进行粗略的研究。java parse json的第一个结果:简单json没有问题……但是嵌套数组json呢?对于嵌套数组,您访问详细信息值,然后转换到JSONArray,然后迭代这些值。查看json simple的API用法。
JsonElement jelement = new JsonParser().parse(jsonLine);
JsonElement value = jelement.getAsJsonArray().get(0);
JsonArray details = value.getAsJsonObject().get("details").getAsJsonArray();