假设在服务器端我们已经得到一个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语法的字符串了。