首先pom.xml
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
</dependency>
也可以直接去这个网址下载jar包 https://mvnrepository.com/artifact/com.google.code.gson/gson
我们来解析下面这个json字符串,这是我工作是要用的
JsonParser jp = new JsonParser();
String aa=TranUtil.Get("武汉","广州","2019-11-21");
//将json字符串转化成json对象
JsonObject jo = jp.parse(aa).getAsJsonObject();
System.out.println(jo);
String list =jo.get("result").getAsJsonObject().get("list").getAsJsonArray().toString();
//String类型变成list
Gson gson = new Gson();
List<aaa> arrList = gson.fromJson(list, new TypeToken<List<aaa>>() {}.getType());
//aaa是实体类
//循环便利
List<aaa> list3 =new ArrayList<aaa>();
for (int i = 0; i < arrList.size(); i++) {
System.out.println(arrList.get(i).getType());
if(type.equals(arrList.get(i).getType())) {
list3.add(arrList.get(i));
}
}
下面这是一个例子
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
public class Test {
public static void main(String[] args) {
String resultStr = "{\"status\": 0,\"message\": \"query ok\","+
"\"result\": {\"address\": \"北京市海淀区镜桥\","+
"\"address_component\": {\"nation\": \"中国\",\"province\": \"北京市\","+
"\"city\": \"北京市\",\"district\": \"海淀区\","+
"\"street\": \"镜桥\",\"street_number\": \"镜桥\"}}}";
JsonParser jp = new JsonParser();
//将json字符串转化成json对象
JsonObject jo = jp.parse(resultStr).getAsJsonObject();
//获取message对应的值
String message = jo.get("message").getAsString();
System.out.println("message:" + message);
//获取address对应的值
String address = jo.get("result").getAsJsonObject().get("address").getAsString();
System.out.println("address:" + address);
//获取city对应的值
String nation = jo.get("result").getAsJsonObject().get("address_component")
.getAsJsonObject().get("nation").getAsString();
System.out.println("nation:" + nation);
}
}
2,gson之将对象转化成json字符串的方法
public class GsonUtil {
/**
* 将object对象转成json格式字符串
*/
public static String toJson(Object object) {
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.setPrettyPrinting();
Gson gson = gsonBuilder.create();
return gson.toJson(object);
}
}