Loading

【Gson】网页上String获取的Json数据转化为对象

1.网络上获取的String Json格式转化为对象获取数据:

需要的包:Gson 

Maven依赖:

1 <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
2 <dependency>
3     <groupId>com.google.code.gson</groupId>
4     <artifactId>gson</artifactId>
5     <version>2.8.0</version>
6 </dependency>

具体实现:

1 public static String StingToJson(String Result, String param) {
2         JsonParser jsonParser = new JsonParser();
3         JsonElement element = jsonParser.parse(Result);
4         JsonObject object = element.getAsJsonObject();
5         String result = object.get(param).getAsString();
6         return result;
7     }

说明:

这个解析的过程我是走了弯路,因为对方法不熟,到处找教程,未果。当时会报ClassCastException的错,之后看官方文档才发现端倪。

官方文档地址:http://tool.oschina.net/apidocs/apidoc?api=gson2.2.2

其中第3行代码得到的 element 可以转化为几个对象,但是,其中的JsonArray在代码里面并不会报错,这里面有一个isJsonArray()方法,可以提前加一个判断,这样就可以完全避免错误。

【关于嵌套】

有的Json数据里面还有一层这种情况。

 

 1 public static void main(String[] args) {
 2         loginResult = LoginPost("xtadmin", "1");
 3         JsonParser parser = new JsonParser();
 4         JsonElement element = parser.parse(loginResult);
 5         if (element.isJsonObject()) {
 6             JsonObject jsonObject = element.getAsJsonObject();
 7             String string = jsonObject.get("result").getAsString();
 8             System.out.println(string);
 9             JsonElement jsonElement = jsonObject.get("entity");
10             JsonObject object = jsonElement.getAsJsonObject();
11             String token = object.get("token").getAsString();
12             System.out.println(token);
13         }
14     }

 

 其中9-11行就是再获取一次Object,再重新取值即可。

posted @ 2017-11-20 23:17  Haaai  阅读(1143)  评论(0编辑  收藏  举报