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,再重新取值即可。