这里封装了7个使用json的常用方法:
- 将json字符串转为对象
- 将json字符串转为对象list
- 将java list数组转为json array字符串
- 将java对象转成json字符串
- 将java list数组转为json array对象
- 将java对象转为json对象
- 将json字符串转为json对象或数组
封装类:
public class FastJsonUtil {
/**
* Author:ZhangHuanMing
* Name: toBean
* Time:2017年7月13日下午2:42:03
* Description: translate jsonString to bean
* parameter:jsonString,beanClass
* return: T
*/
public static <T> T toBean(String jsonString,Class<T> beanClass){
T t = JSONObject.parseObject(jsonString, beanClass);
return t;
}
/**
* Author:ZhangHuanMing
* Name: toBeanList
* Time:2017年7月13日下午3:01:56
* Description: translate jsonString to bean list
* parameter:jsonString,beanClass
* return: List<T>
*/
public static <T> List<T> toBeanList(String jsonString,Class<T> beanClass){
List<T> t = JSONObject.parseArray(jsonString, beanClass);
return t;
}
/**
* Author:ZhangHuanMing
* Name: listToJsonStr
* Time:2017年7月13日下午3:20:52
* Description: translate bean list to jsonString
* parameter:list
* return: String
*/
public static <T> String listToJsonStr(List<T> list){
String jsonArrayString = JSONObject.toJSONString(list);
return jsonArrayString;
}
/**
* Author:ZhangHuanMing
* Name: listToJSONArr
* Time:2017年7月13日下午3:33:32
* Description: translate bean list to json array
* parameter:list
* return: JSONArray
*/
public static <T> JSONArray listToJSONArr(List<T> list){
JSONArray array = (JSONArray) JSONObject.toJSON(list);
return array;
}
/**
* Author:ZhangHuanMing
* Name: beanToJsonStr
* Time:2017年7月13日下午3:26:56
* Description: translate bean to jsonString
* parameter:t
* return: String
*/
public static <T> String beanToJsonStr(T t){
String jsonObjectString = JSONObject.toJSONString(t);
return jsonObjectString;
}
/**
* Author:ZhangHuanMing
* Name: beanToJsonObj
* Time:2017年7月13日下午3:38:23
* Description: translate bean to json object
* parameter:t
* return: JSONObject
*/
public static <T> JSONObject beanToJsonObj(T t){
JSONObject json = (JSONObject) JSONObject.toJSON(t);
return json;
}
/**
* Author:ZhangHuanMing
* Name: jsonStrToObjArr
* Time:2017年7月13日下午3:52:37
* Description: translate json string to json object or array
* parameter:
* return: T
*/
public static <T> T jsonStrToObjArr(String jsonStr){
T t = (T) JSONObject.parse(jsonStr);
return t;
}
}
Jnuit测试类
public class FastJsonTest {
@Test
public void toBean() { //将json字符串转为对象
String jsonString = "{'name':'张三','age':10}";
User user = FastJsonUtil.toBean(jsonString, User.class);
JSONObject json = FastJsonUtil.toBean(jsonString, JSONObject.class);
System.out.println(user);
System.out.println(json);
}
@Test
public void toBeanList(){ //将json字符串转为对象集合
String jsonString = "["
+ "{'name':'张三','age':10},"
+ "{'name':'李四','age':20}"
+ "]";
List<User> users = FastJsonUtil.toBeanList(jsonString, User.class);
System.out.println(users);
}
@Test
public void listToJson(){ //将java list数组转为json array字符串
List<User> users = new ArrayList<User>();
for (int i = 0; i < 2; i++) {
User user = new User();
user.setAge(i);
user.setName("张三"+i);
users.add(user);
}
String jsonString = FastJsonUtil.listToJsonStr(users);
System.out.println(jsonString);
}
@Test
public void beanToJson(){ //将java对象转成json字符串
User user = new User();
user.setAge(10);
user.setName("张三");
String jsonString = FastJsonUtil.beanToJsonStr(user);
System.out.println(jsonString);
}
@Test
public void listToJSONArr(){ //将java list数组转为json array对象
List<User> users = new ArrayList<User>();
for (int i = 0; i < 2; i++) {
User user = new User();
user.setAge(i);
user.setName("张三"+i);
users.add(user);
}
JSONArray array = FastJsonUtil.listToJSONArr(users);
System.out.println(array.toJSONString());
}
@Test
public void beanToJsonObj(){ //将java对象转为json对象
User user = new User();
user.setAge(10);
user.setName("张三");
JSONObject json = FastJsonUtil.beanToJsonObj(user);
System.out.println(json.toJSONString());
}
@Test
public void jsonStrToObjArr(){ //将json字符串转为json对象或数组
String jsonArrayStr = "["
+ "{'name':'张三','age':10},"
+ "{'name':'李四','age':20}"
+ "]";
String jsonObjStr = "{'name':'张三','age':10}";
JSONObject json = FastJsonUtil.jsonStrToObjArr(jsonObjStr);
JSONArray array = FastJsonUtil.jsonStrToObjArr(jsonArrayStr);
System.out.println(json);
System.out.println(array);
}
}
测试辅助类
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;
}
@Override
public String toString() {
return "User [name=" + name + ", age=" + age + "]";
}
}
fastjson api链接:http://blog.youkuaiyun.com/wilsonke/article/details/37921571