使用gson处理json字符串

首先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);
    }
}
要遍历 JSON 字符串,你可以使用 GSON 库。下面是一个示例代码,展示了如何使用 GSON 解析和遍历 JSON 字符串: ```java import com.google.gson.Gson; import com.google.gson.JsonObject; import com.google.gson.JsonParser; public class JsonTraversalExample { public static void main(String[] args) { String jsonString = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}"; // 创建一个 Gson 对象 Gson gson = new Gson(); // 使用 JsonParser 解析 JSON 字符串JsonObject JsonParser parser = new JsonParser(); JsonObject jsonObject = parser.parse(jsonString).getAsJsonObject(); // 遍历 JsonObject 的键值对 for (String key : jsonObject.keySet()) { System.out.println("Key: " + key); System.out.println("Value: " + jsonObject.get(key)); } // 使用 GsonJSON 字符串解析为指定类型的对象 Person person = gson.fromJson(jsonString, Person.class); System.out.println("Name: " + person.getName()); System.out.println("Age: " + person.getAge()); System.out.println("City: " + person.getCity()); } // 定义一个 Person 类,用于存储解析后的 JSON 数据 private static class Person { private String name; private int age; private String city; public String getName() { return name; } public int getAge() { return age; } public String getCity() { return city; } } } ``` 在这个示例中,我们使用 `JsonParser` 类将 JSON 字符串解析为 `JsonObject`,然后遍历 `JsonObject` 的键值对。同时,我们还使用了 `Gson` 对象将 JSON 字符串解析为 `Person` 对象,并获取对象的属性值。 记得在使用代码之前,先添加 GSON 库的依赖。希望这个示例能对你有所帮助!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值