解析Json也就是举一反三的一个过程,废话不说,好比咱们要解析一个下面这种的Json,咱们用的是Google的一个开源Gson:html
String json = { "a":"100", "b":[{"b1":"b_value1","b2":"b_value2"}{"b1":"b_value1","b2":"b_value2"}], "c":{"c1":"c_value1","c2":"c_value2"} "points":[[534.654564,566.546654,4856.5454656],[534.654564,566.546654,4856.5454656], [534.654564,566.546654,4856.5454656],[534.654564,566.546654,4856.5454656]] }
首先咱们须要定义一个序列化的Bean,这里采用内部类的形式,看起来会比较清晰一些:java
public class JsonBean { public String a; public List<B> b; public C c; public List<List<Double>> points; public static class B { public String b1; public String b2; } public static class C { public String c1; public String c2; } } //Bean里边的get和set方法就省略不写了,规范点仍是要加上的
定义JavaBean须要注意几点:
一、内部嵌套的类必须是static的,否则解析会出错;
二、类里面的属性名必须跟Json字段里面的Key是如出一辙的;
三、内部嵌套的用[]括起来的部分是一个List,List里边是B对象,因此定义为 public List<B> b;
四、内部嵌套的用{}括起来的是直接的C对象,因此定义为 public C c;
五、当里边的数据是[[***,***,***]],这个时候就用List<List<Double>> points;Double也即double,不是对象哦。json
当这些都弄好的时候,就到咱们解析的main方法里边,以下。
Gson gson = new Gson();
JsonBean jsonBean = gson.fromJson(json, JsonBean.class);
若是须要解析的Json嵌套了不少层,一样能够能够定义一个嵌套不少层内部类的Bean,须要细心的对照Json字段来定义哦。code