Java:
JSON字符串和对象之间的转换
JSON字符串和对象集合之间的转换
代码:
package com.wenjian.demo.utils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.wenjian.demo.entity.Person;
import org.springframework.util.StringUtils;
import java.util.List;
/**
* JSON的工具类
*
* @author nn
* @date 2021/1/5 - 11:33
*/
public class JsonUtils {
/**
* JSON格式字符串转换为对象
*/
public static Person jsonToObject(String jsonStr) {
if (StringUtils.isEmpty(jsonStr)) {
return null;
}
//对象JSON字符串转为JSONObject对象
//JSONObject jsonObject = (JSONObject) JSONObject.parse(jsonStr);
//或者
JSONObject jsonObject = JSONObject.parseObject(jsonStr);
/**JSON.toJSONString()方法把JSONObject对象转为JSON字符串
*JSON.parseObject()把JSON字符串转为对象
* 注意:JSON.toJSONString()方法中为JSONObject对象
*/
Person person = JSON.parseObject(JSON.toJSONString(jsonObject), Person.class);
return person;
}
/**
* JSON格式字符串转换为对象集合
*/
public static List<Person> jsonToObjectCollection(String jsonStrCollect) {
if (StringUtils.isEmpty(jsonStrCollect)) {
return null;
}
//对象集合JSON字符串转为JSONArray对象
//JSONArray jsonArray = (JSONArray)JSONArray.parse(jsonStrCollect);
//或者
JSONArray jsonArray = JSONArray.parseArray(jsonStrCollect);
/**JSON.toJSONString()方法把JSONArray转为JSON字符串
* JSON.parseObject()把JSON字符串转为对象
* 注意:JSON.toJSONString()方法中为JSONArray对象
*/
List<Person> persons = JSON.parseObject(JSON.toJSONString(jsonArray), new TypeReference<List<Person>>() {
});
return persons;
}
/**
* JSON格式字符串转换为对象
*/
public static Person jsonCovertObject(String jsonStr) {
if (StringUtils.isEmpty(jsonStr)) {
return null;
}
//对象JSON字符串使用JSON.parseObject()转为对象
Person person = JSON.parseObject(jsonStr, Person.class);
return person;
}
/**
* JSON格式字符串转换为对象集合
*/
public static List<Person> jsonConvertObjectCollection(String jsonStrCollect) {
if (StringUtils.isEmpty(jsonStrCollect)) {
return null;
}
//对象JSON字符串使用JSON.parseObject()转为对象集合
List<Person> persons = JSON.parseObject(jsonStrCollect, new TypeReference<List<Person>>() {
});
return persons;
}
/**
* JSON格式字符串转换为对象集合
*/
public static List<Person> jsonConvertObjectCollection2(String jsonStrCollect) {
if (StringUtils.isEmpty(jsonStrCollect)) {
return null;
}
//对象JSON字符串使用JSON.parseObject()转为对象集合
List<Person> persons = JSON.parseObject(jsonStrCollect, ArrayList.class);
return persons;
}
public static void main(String[] args) {
/**
* JSON字符串和对象之间的转换
*/
String jsonStr = "{\"name\":\"文件\",\"sex\":\"男\"}";
Person person1 = JsonUtils.jsonToObject(jsonStr);
if (person1 != null) {
System.out.println(person1.toString());
}
/**
* JSON字符串和对象之间的转换
*/
Person person2 = JsonUtils.jsonCovertObject(jsonStr);
if (person2 != null) {
System.out.println(person2.toString());
}
/**
* JSON字符串和对象集合之间的转换
*/
String jsonStrCollect = "[{\"name\":\"111\",\"sex\":\"男\"},{\"name\":\"222\",\"sex\":\"女\"}]";
List<Person> persons1 = JsonUtils.jsonToObjectCollection(jsonStrCollect);
if (persons1 != null) {
System.out.println(persons1.toString());
}
/**
* JSON字符串和对象集合之间的转换
*/
List<Person> persons2 = JsonUtils.jsonConvertObjectCollection(jsonStrCollect);
if (persons2 != null) {
System.out.println(persons2.toString());
}
}
}
package com.wenjian.demo.entity;
/**
* 人的实体类
*
* @author nn
* @date 2021/1/5 - 11:46
*/
public class Person {
/**
* 姓名
*/
private String name;
/**
* 性别
*/
private String sex;
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;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", sex='" + sex + '\'' +
'}';
}
}
//Maven依赖,版本根据自己选择
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.49</version>
</dependency>
记个笔记