JSON和JAVA对象之间的转换小结

    JSON(JAVAScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于欧洲计算机协会制定的js规范的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。

   1.为了便于转换,需要导入一些包(网上容易找到)。

     

  2. 具体转换如下:

  (1)将JAVA对象转换为JSON对象

     

 //1.将JAVA对象转换为JSON对象
		User user = new User("张三","男",18);
		//转化
		JSONObject jsonObject = JSONObject.fromObject(user);
		//将JSON对象转字符串输出
		System.out.println(jsonObject.toString());

   输出内容为:{"age":18,"name":"张三","sex":"男"}

   (2)将JSON字符转换为JAVA对象

     

//2.将JSON字符转换为JAVA对象
		String useStr = jsonObject.toString();
		JSONObject jsonobject = JSONObject.fromObject(useStr);
		User newUse = (User)JSONObject.toBean(jsonObject,User.class);
		System.out.println(newUse.toString());

   输出内容为:name:张三    sex:男    age:18(便于观察,此处重写了toString())

   

  (3)将JAVA对象集合转换为JSON对象数组

   

// 3.将JAVA对象集合转换为JSON对象数组
		// 生成JAVA对象集合
		List<User> userList = new ArrayList<User>();
		User user1 = new User("李四", "男", 17);
		User user2 = new User("王五", "男", 18);
		userList.add(user1);
		userList.add(user2);
		// 转化
		JSONArray jsonArray = JSONArray.fromObject(userList);
		// 将JSON对象数组转字符串输出
		System.out.println(jsonArray.toString());

 输出内容为:[{"age":17,"name":"李四","sex":"男"},{"age":18,"name":"王五","sex":"男"}] 

(4)将JSON字符串转换为JAVA对象数组

// 4.将JSON字符串转换为JAVA对象数组
		String userListStr = jsonArray.toString();
		JSONArray jsonArray2 = JSONArray.fromObject(userListStr);
		List<User> users = (List<User>) JSONArray.toCollection(jsonArray2, User.class);
		for (User tempUser : users) {
			System.out.println(tempUser.toString());
		}

  输出内容为:name:李四    sex:男    age:17
                       name:王五    sex:男    age:18

  User类如下:

package com.jsontest.model;

public class User {
	private String name;
	private String sex;
	private int age;

	public User() {
		super();
	}

	public User(String name, String sex, int age) {
		super();
		this.name = name;
		this.sex = sex;
		this.age = age;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	@Override
	public String toString() {
		return "name:"+this.name+"\t"+"sex:"+this.sex+"\t"+"age:"+this.age;
	}
	
	

}

猜你喜欢

转载自blog.csdn.net/qq_40348465/article/details/83796363