同时Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。功能非常的强悍!
大家也知道,json 在如今互联网时代应用的非常广,因为大家如此的关注,所以对json的解析性能要求也是非常高的。
转hashMap:
ObjectMapper mapper = new ObjectMapper();
HashMap<String,String> map = mapper.readValue(dataStr, HashMap.class);
转实体对象
MqdOrgProductStandardVo standardVo = mapper.readValue( standardProductData,MqdOrgProductStandardVo.class );
*********************************************************************************************************************
字符串json数组类型转数组对象
实体对象:
public class MqdQualEnclEntity extends BaseEntity{
private static final long serialVersionUID = 1L;
//columns START
//ID
private String id;
//资质表ID
private String qualId;
//资质类型(企业或者产品)
private String qualType;
//业务ID(企业ID或产品ID)
private String buiId;
//资质模板ID
public void setId(String id) {
this.id = id;
}
public String getDataStatus() {
return dataStatus;
}
public void setDataStatus(String dataStatus) {
this.dataStatus = dataStatus;
}
public String getDbUser() {
return dbUser;
}
public void setDbUser(String dbUser) {
this.dbUser = dbUser;
}
public String getDbPaw() {
return dbPaw;
}
public void setDbPaw(String dbPaw) {
this.dbPaw = dbPaw;
}
public String getId() {
return this.id;
}
public void setQualId(String qualId) {
this.qualId = qualId;
}
public String getQualId() {
return this.qualId;
}
public void setQualType(String qualType) {
this.qualType = qualType;
}
public String getQualType() {
return this.qualType;
}
public void setBuiId(String buiId) {
this.buiId = buiId;
}
public String getBuiId() {
return this.buiId;
}
}
json字符串(dataStr)转集合对象
List<MqdQualTempChooseEntity> qualEnclList = mapper.readValue(dataStr, new TypeReference<List<MqdQualTempChooseEntity>>() {} );
*************************************************************************************************************************
json-lib-2.4-jdk15.jar(net.sf.json)
转list
List<Map<String,String>> paramList = JSONArray.toList(JSONArray.fromObject(dataStr),HashMap.class);
用GSON解析Json格式数据
GSON是谷歌提供的开源库,用来解析Json格式的数据,非常好用。如果要使用GSON的话,则要先下载gson-2.2.4.jar这个文件,如果是在Android项目中使用,则在Android项目的libs目录下添加这个文件即可;如果是在Java项目中,则把gson-2.2.4.jar先添加到当前项目的任意一个包中,然后右键点击这个jar包 -> 构建路径 -> 添加至构建路径。这样准备工作就做好了
1 String jsonData = "{\"name\":\"John\", \"age\":20}"; //注:这里也可以不使用转义字符,而用单引号:String jsonData = "{'name':'John', 'age':20}";
2 Gson gson = new Gson();
3 Person person = gson.fromJson(jsonData,Person.class);
import com.google.gson.Gson;
/**
* 用GSON解析单条Json数据
*
*/
public class GsonTest1 {
public static void main(String[] args) {
String jsonData = "{'name':'John', 'age':20}";
Person person = GsonUtil.parseJsonWithGson(jsonData, Person.class);
System.out.println(person.getName() + "," + person.getAge());
}
}
/*
* 封装的GSON解析工具类,提供泛型参数
*/
class GsonUtil {
//将Json数据解析成相应的映射对象
public static <T> T parseJsonWithGson(String jsonData, Class<T> type) {
Gson gson = new Gson();
T result = gson.fromJson(jsonData, type);
return result;
}
}
class Person {
private String name;
private String age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
//##############################################################################################
import java.lang.reflect.Type;
import java.util.List;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
/**
* 用GSON解析Json数组
*/
public class GsonTest {
public static void main(String[] args) {
// Json数组最外层要加"[]"
String jsonData = "[{'name':'John', 'grade':[{'course':'English','score':100},{'course':'Math','score':78}]},{'name':'Tom', 'grade':[{'course':'English','score':86},{'course':'Math','score':90}]}]";
List<Student> students = GsonUtil.parseJsonArrayWithGson(jsonData,
Student.class);
System.out.println(students);
}
}
/*
* 封装的GSON解析工具类,提供泛型参数
*/
class GsonUtil {
// 将Json数据解析成相应的映射对象
public static <T> T parseJsonWithGson(String jsonData, Class<T> type) {
Gson gson = new Gson();
T result = gson.fromJson(jsonData, type);
return result;
}
// 将Json数组解析成相应的映射对象列表
public static <T> List<T> parseJsonArrayWithGson(String jsonData,
Class<T> type) {
Gson gson = new Gson();
List<T> result = gson.fromJson(jsonData, new TypeToken<List<T>>() {
}.getType());
return result;
}
}
class Student {
private String name;
private List<Grade> grade; // 因为grade是个数组,所以要定义成List
public class Grade {
private String course;
private String score;
public String getCourse() {
return course;
}
public void setCourse(String course) {
this.course = course;
}
public String getScore() {
return score;
}
public void setScore(String score) {
this.score = score;
}
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<Grade> getGrade() {
return grade;
}
public void setGrade(List<Grade> grade) {
this.grade = grade;
}
}