json字符串转换成对象
来源:互联网 发布:react 引入js文件 编辑:程序博客网 时间:2024/06/11 19:36
用两种方法实现:
1,使用gson
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.5</version>
</dependency>
json字符串转换长对象:
对象转换成json:
案例:
Gson gson =new Gson();
Dog dog=new Dog();
dog.setAge("12");
dog.setName("大黄");
String jsonString=gson.toJson(dog);
System.out.println(jsonString);
Dog dog1=gson.fromJson(jsonString, Dog.class);
System.out.println(dog1.getName());
2,使用jackson
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.6</version>
</dependency>
案例:
public class JsonUtil {
private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
/**
* Json格式的字符串向JavaBean转换,传入空串将返回null
* @param strBody Json格式的字符串
* @param c 目标JavaBean类型
* @return JavaBean对象
* @throws JsonParseException
* @throws JsonMappingException
* @throws IOException
*/
public static <T>T json2Object(String strBody,Class<T> c) throws JsonParseException, JsonMappingException, IOException{
if(strBody==null || "".equals(strBody)){
return null;
}else{
strBody = EscapeCompatible(strBody);
ObjectMapper mp = new ObjectMapper();
T t = (T)mp.readValue(strBody,c);
return t;
}
}
/**
*
* @param strBody
* @param c
* @return
* @throws JsonParseException
* @throws JsonMappingException
* @throws IOException
*/
public static Object json2ComplexObject(String strBody) throws JsonParseException, JsonMappingException, IOException{
if(strBody==null || "".equals(strBody)){
return null;
}else{
strBody = EscapeCompatible(strBody);
ObjectMapper mp = new ObjectMapper();
Object o = mp.readValue(strBody,Object.class);//每个属性的实际类型是string
return o;
}
}
/**
* Json格式的字符串向JavaBean List集合转换,传入空串将返回null
* @param <T>
* @param <T>
* @param <T>
* @param strBody
* @param c
* @return
* @return
* @throws JsonParseException
* @throws JsonMappingException
* @throws IOException
*/
public static <T> List<T> json2ObjectList(String strBody,Class<T> c) throws JsonParseException, JsonMappingException, IOException{
if(strBody==null || "".equals(strBody)){
return null;
}else{
strBody = EscapeCompatible(strBody);
ObjectMapper mp = new ObjectMapper();
JavaType javaType = mp.getTypeFactory().constructParametricType(ArrayList.class, c);
List<T> lst = (List<T>)mp.readValue(strBody, javaType);
return lst;
}
}
/**
* Json格式的字符串向List<String>集合转换,传入空串将返回null
* @param strBody
* @return
* @throws JsonParseException
* @throws JsonMappingException
* @throws IOException
*/
public static List<String> json2List(String strBody) throws JsonParseException, JsonMappingException, IOException{
if(strBody==null || "".equals(strBody)){
return null;
}else{
strBody = EscapeCompatible(strBody);
ObjectMapper mp = new ObjectMapper();
List<String> t = (List<String>)mp.readValue(strBody, List.class);
return t;
}
}
/**
* 转义兼容方法,若URL中的反斜杠是单杠,则增加一个反斜杠用以转义
* @param strBody
* @return
*/
private static String EscapeCompatible(String strBody) {
int s = strBody.indexOf("\\");//第一个反斜杠的位置
char a = strBody.charAt(s+1);//第一个反斜杠后边的那个字符
/*
* 如果解析后的url中的反斜杠是单杠,则转义
*/
if(!String.valueOf(a).equals("\\")){
strBody = strBody.replace("\\", "\\\\");
}
return strBody;
}
/**
* Object转为Json格式字符串的方法
* @param o
* @return
* @throws JsonProcessingException
*/
public static String object2Json(Object o) throws JsonProcessingException{
ObjectMapper mp = new ObjectMapper();
return mp.writeValueAsString(o);
}
public static String encodeObject(Object o) {
try {
return OBJECT_MAPPER.writeValueAsString(o);
} catch (JsonProcessingException e) {
e.printStackTrace();
return null;
}
}
/**
* Json格式的字符串向JavaBean转换,传入空串将返回null
* @param strBody Json格式的字符串
* @param c 目标JavaBean类型
* @return JavaBean对象, 如果解析失败返回 null
*/
public static <T> T decodeJson(String strBody, Class<T> c) {
if (strBody == null || "".equals(strBody)) {
return null;
}
else {
try {
return OBJECT_MAPPER.readValue(strBody, c);
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
}
}
String jString=JsonUtil.object2Json(dog);
System.out.println(jString);
Dog dog2=JsonUtil.json2Object(jString, Dog.class);
System.out.println(dog2.getAge());
- json字符串转换成对象
- json字符串转换成对象
- JSON格式字符串如何转换成对象
- GSON,json转换成对象,转换成字符串
- json对象转换成对象
- JSON数据转换成对象
- xml字符串转换成对象
- 把字符串转换成对象
- JS-JSON和字符串互相转换-将字符串转换成对象-对象转换成字符串
- 将JSON数据转换成对象
- json数组直接转换成对象
- JS-将json格式转换成对象
- JSON字符串如何转化成对象?
- c# json数据解析——将字符串json格式数据转换成对象
- 将一个字符串强制转换成对象
- js把字符串转换成对象
- js中,字符串转换成对象
- 如何将C#/.NET 将json字符串格式数据转换成对象
- spring cloud-添加Hystrix Dashboard监控到系统中
- SSL与TLS学习
- [Android新手学习笔记13]-UI控件之ImageView
- 剖析Disruptor:为什么会这么快?(二)神奇的缓存行填充
- iOS开发,删除tableView的cell
- json字符串转换成对象
- win7下64位系统memcache/memcached 安装教程
- 虚拟机(centos系统)挂载另外一块linux硬盘
- Bzoj 3036: 绿豆蛙的归宿(期望)
- 2017年全国大数据时代情报分析研讨会日程出炉!
- BIRT参数设置详解
- Tango ROS Streamer
- 理解与使用Javascript中的回调函数
- Add Two Numbers