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,再重新取值即可。
【Gson】网页上String获取的Json数据转化为对象
原文地址:http://www.cnblogs.com/xuhai/p/7868784.html