现在的位置: 首页 > 综合 > 正文

JSON(2):如何将一个java对象转换为一个符合json语法的字符串

2013年10月09日 ⁄ 综合 ⁄ 共 1459字 ⁄ 字号 评论关闭

假设在服务器端我们已经得到一个java对象,现在考虑如何将这个java对象转换为一个符合json语法的字符串。当然我们可以自己写一套算法实现这个转换,但是比较麻烦,尤其当对象的属性很多的时候或者属性嵌套的比较深的时候,就更麻烦了。

实际中,我们可以利用现成的工具实现这个转换过程:

User.java :

public class User {

	private String name;
	private int age;
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	
	public User() {
		super();
	}
	public User(String name, int age) {
		super();
		this.name = name;
		this.age = age;
	}
	
}

Test.java :

public class Test {

	public static void main(String[] args) {
		//test1();
		test2();
		//test3();
	}
	
	//将一个java对象转换成一个符合json语法的字符串
	public static void test1(){
		User user=new User("Tom",20);
		JSONObject json=JSONObject.fromObject(user);
		String json_str=json.toString();
		System.out.println(json_str);
	}
	
	//将一个java数组转换成一个符合json语法的字符串
	public static void test2(){
		User user1=new User("Tom",20);
		User user2=new User("Green",25);
		User[] users={user1,user2};
		JSONArray json=JSONArray.fromObject(users);
		String json_str=json.toString();
		System.out.println(json_str);
	}
	
	//将一个java集合转换成一个符合json语法的字符串
	public static void test3(){
		User user1=new User("Tom",20);
		User user2=new User("Green",25);
		User user3=new User("Smith",30);
		List<User> users=new ArrayList<User>();
		users.add(user1);
		users.add(user2);
		users.add(user3);
		JSONArray json=JSONArray.fromObject(users);
		String json_str=json.toString();
		System.out.println(json_str);
	}

}

需要做的就是导入相应的jar包,其中json包为核心包,其余为依赖包。相关jar包可以到我的资源里免费下载。

转换过程中需要使用JSONObject( 转换Java对象)和JSONArray( 转换Java对象数组或Java集合)的 fromObject( )方法,得到json对象以后,接着调用 toString( )方法,就可以得到我们要求的符合json语法的字符串了。

抱歉!评论已关闭.