json在java中的常见的有三种操作

json在 java中的操作。常见的有三种情况。
1、java 对象和 json 的转换
2、java 对象 list 集合和 json 的转换
3、map 对象和 json 的转换。
我们要使用json 和java中使用,我们需要使用到一个第三方的包。它就是gson.jar。
在这里插入图片描述

Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串
转成一个 Java 对象,或者反过来。

package com.gx.gson;

import java.util.ArrayList; 
import java.util.HashMap; 
import java.util.List;
import java.util.Map;

import com.google.gson.Gson; 
import com.google.gson.reflect.TypeToken;

public class GsoTest {
	static class Person { 
		
		private int age; 
		
		private String name;
		
	    public Person() {
		}
	    public Person(int age, String name) 
	    {
	    	this.age = age; 
	    	this.name = name;
	    	}
		public int getAge() {
			return age;
		}
		public void setAge(int age) {
			this.age = age;
		}
		public String getName() {
			return name;
		}
		public void setName(String name) {
			this.name = name;
		}
		@Override
		public String toString() {
			return "Person [age=" + age + ", name=" + name + "]";
		}
		
	}
		// 要把复杂的 json 字符串转换成为 java 对象。需要继承 TypeToken 类。
		// 并把返回的类型当成 TypeToken 的泛型注入 
		static class PersonType extends TypeToken<List<Person>> {
			
		}
		
		public static void main(String[] args) { 
			// json 操作,一定要先 new 一个 gson 对象。
			Gson gson = new Gson(); 
			// java 对象--json 
			Person person = new Person(12, "wzg168");
			// 把对象转成为 json 字符串 
			String personjson = gson.toJson(person);
		
			System.out.println(personjson); 
			// 把 json 字符串转换成为 java 对象 
			Person p = gson.fromJson(personjson, Person.class);
			System.out.println(p);
			System.out.println("------------------------------------------");
			// 2、java 对象 list 集合和 json 的转换 
			List<Person> list = new ArrayList<Person>();
			for (int i = 0; i < 3; i++) {
				list.add(new Person(10 * i, "name-" + i));
				}
			String jsonListString = gson.toJson(list);
			System.out.println(jsonListString);
			// 把 json 数组转换成为 List 对象
			// List<Person> ps = gson.fromJson(jsonListString, new PersonType().getType());
			// 我们也可以使用匿名内部类
			List<Person> ps = gson.fromJson(jsonListString, new TypeToken<List<Person>>() { }.getType());
			System.out.println(ps); System.out.println("------------------------------------------");
			// 3、map 对象和 json 的转换HashMap<String, GsonTest.Person>()
			Map<String, Person> mapPerson = new HashMap<String, GsoTest.Person>();  
			// 添加 person 到 map 中
			mapPerson.put("p1", new Person(1, "person-1"));
			mapPerson.put("p2", new Person(2, "person-2")); 
			// 把 map 转换成为 json 对象
			String jsonMapString = gson.toJson(mapPerson);
			System.out.println(jsonMapString); 
			// 通过使用匿名内部类的方式
			Map<String, Person> map = gson.fromJson(jsonMapString, 
					new TypeToken<HashMap<String, Person>>() {}.getType());
			System.out.println(map);

	}

}

运行效果:
在这里插入图片描述在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值