Java对象转换成JSON String格式
2018-01-24 18:58
411 查看
JSON 格式转换成Java对象
标签(空格分隔): Java jsckson源代码
添加依赖到pom.xml
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.6.3</version> </dependency>
需要转换的对象是
ObjectC和
ObjectD,其中
ObjectD的一个成员变量是
List<ObjectC>.
jackson能够递归转换,让json中包含json的这种也能够转为相应的Java对象
//ObjectC.java package com.workstation; import com.fasterxml.jackson.annotation.JsonProperty; public class ObjectC { @JsonProperty ("Message") String message; public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } //JSON 中message也会绑定到message成员变量 @JsonProperty ("message") public String _getMessage() { return message; } @JsonProperty ("message") public void _setMessage(String message) { this.message = message; } }
如上所写,ObjectC对象和Json中的”Message”和”message”都绑定到了message成员变量
//ObjectD.java package com.workstation; import java.util.List; import com.fasterxml.jackson.annotation.JsonProperty; public class ObjectD { List<ObjectC> list; @JsonProperty ("List") public List<ObjectC> getList() { return list; } //能够像spring一样,自动完成ObjectC的转换 @JsonProperty ("List") public void setList(List<ObjectC> list) { this.list = list; } }
测试代码
package com.workstation; import java.io.IOException; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; import org.junit.Test; import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.ObjectMapper; public class testJsonToObject { @Test public void test() throws JsonParseException, JsonMappingException, IOException { String jsonString = "{ \"message\":\"Hello World\"}"; ObjectC objectC = (new ObjectMapper()).readValue(jsonString, ObjectC.class); System.out.println(objectC.getMessage()); // { // "List": [ // {"message":"hello A"}, // {"Message":"hello B"} // ] // } String jsonListString = "{\r\n" + "\"List\": [\r\n" + "{\"message\":\"hello A\"},\r\n" + "{\"Message\":\"hello B\"}\r\n" + "]\r\n" + "}"; ObjectD objectD = (new ObjectMapper()).readValue(jsonListString, ObjectD.class); List<ObjectC> list = objectD.getList(); for(int i = 0; i < list.size(); ++i) { System.out.println(list.get(i).getMessage()); } //jackson结合TypeReference Map<String, String> map = new HashMap<String, String>(); map = (new ObjectMapper()).readValue(jsonString, new TypeReference<Map<String, String>>(){}); for(Entry<String, String> entry : map.entrySet()) { System.out.println(entry.getKey()+":"+entry.getValue()); } } } }
输出
Hello World hello A hello B message:Hello World
如上所示,jackson成功读取了含有list的json对象
jsackson还可以和TypeReference一起使用,这样对某些特定情况下就不用专门新建一个类来读取相关东西了
相关文章推荐
- ajax打印对象时,转换由java对象转为Json格式的String时遇到的Hibernate问题
- 使用jackson将java对象转换成标准的json格式,便于与easyui的datagrid交互
- java集合的运用,把数组和对象的json格式,转换成对象和数组的格式
- Java中对象的list与JSON格式字符串的互相转换
- FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换操作
- JSON的String字符串与Java的List列表对象的相互转换
- 使用jacksonjava对象转换成标准的json格式,便于与easyui...
- FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换
- JSON格式的字符串转换为java对象
- JSON的String字符串与Java的List列表对象的相互转换
- FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换
- FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换
- android/java中把对象、对象bean、Collection以及字符串转换成Json格式数据
- Java将List,Set,Arrary,String,Object转换为JSON格式
- Spring AMQP 发送JSON格式的对象及Java 8时间转换成JSON格式
- javascript 中的JSON.stringify - 将对象和数组转换为json格式(来源于网络)
- java对象数据转换成json数据格式
- Java中Json对象与String的相互转化,以及String与Map之间的转换,以及ArrayList中添加对象
- FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换
- 使用Java 语言可以方便的把任意对象转换成json格式的数据