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;
}
}