jackson的json转换
public class JacksonJsonUtil {
/**
* 将java对象转换成json字符串
* @param obj 准备转换的对象
* @return json字符串
* @throws Exception
*/
public static String beanToJson(Object obj) throws Exception {
try {
ObjectMapper objectMapper = new ObjectMapper();
String json =objectMapper.writeValueAsString(obj);
return json;
} catch (Exception e) {
throw new Exception(e.getMessage());
}
}
/**
* 将json字符串转换成java对象
* @param json 准备转换的json字符串
* @param cls 准备转换的类
* @return
* @throws Exception
*/
public static Object jsonToBean(String json, Class<?> cls) throws Exception {
try {
<pre name="code" class="java"> ObjectMapper objectMapper = new ObjectMapper();
Object vo = objectMapper.readValue(json, cls);
return vo;
} catch (Exception e) {
throw new Exception(e.getMessage());
}
}
}
Jackson Annotations 基本用法
一、重命名属性
- publicclassName{
- @JsonProperty("firstName")
- publicString_first_name;
- }
结果是:
二、忽略属性
- publicclassValue{
- publicintvalue1;
- @JsonIgnore
- publicintvalue2;
- }
结果是:
①当由json字符串反序列化成pojo时,如果想忽略json字符串中的某些属性这样处理:
- @JsonIgnoreProperties({"extra","uselessValue"})
- publicclassValue{
- publicintvalue;
- }
这样就可以把下面的json字符串反序列化成 Value 对象:
- {"value":42,"extra":"fluffy","uselessValue":-13}
②若反序列化时要忽略所有pojo中不存在的属性可以这样:
- @JsonIgnoreProperties(ignoreUnknown=true)
- publicclassPojoWithAny{
- publicintvalue;
- }
三、指定属性类型
有时候属性的类型并不是你想要的,比如以下情况:
- 反序列化的时候,声明的类型是一个通用类型,但是你知道应该对应哪个具体的实现类。
- 序列化时,你可能不需要一个类的全部属性,只是想要它的父类的属性。
这样处理就可以了:
- publicclassValueContainer{
- @JsonDeserialize(as=ValueImpl.class)
- publicValuevalue;
- @JsonSerialize(as=BasicType.class)
- publicBasicTypeanother;
- }
四、使用构造器或工厂方法
①Jackson默认使用无参的默认构造器来创建实例,但是也可以使用其他构造器或者静态的工厂方法来创建实例。
- publicclassCtorPOJO{
- privatefinalint_x,_y;
- @JsonCreator
- publicCtorPOJO(@JsonProperty("x")intx,@JsonProperty("y")inty){
- _x=x;
- _y=y;
- }
- }
②静态的工厂方法也是同样的用法。但是还有一个被称作“委托”的另类用法:
- publicclassDelegatingPOJO{
- privatefinalint_x,_y;
- @JsonCreator
- publicDelegatingPOJO(Map<String,Object>delegate){
- _x=(Integer)delegate.get("x");
- _y=(Integer)delegate.get("y");
- }
- }
这种用法只能有一个参数,而且不能带@JsonProperty注解。
五、修改属性自动检测
Jackson默认的属性检测规则是这样的:
- 所有的 public 类型的属性
- 所有的 public 类型的 get 方法
- 所有的 set 方法(无论方法的可见性)
如果默认规则不能满足需求,可以用@JsonAutoDetect注解来改变。
①比如想要自动检测到所有属性(无论该属性的可见性)
- @JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.ANY)
- publicclassPOJOWithFields{
- privateintvalue;
- }
②想要跳过所有方法
- @JsonAutoDetect(getterVisibility=JsonAutoDetect.Visibility.NONE)
- publicclassPOJOWithNoMethod{
- }
③两个加在一起就是只检测属性不检测方法了(鄙人就是为了这个才去读了官方文档的)
- @JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.ANY,getterVisibility=JsonAutoDetect.Visibility.NONE)
- publicclassPOJOWithOnlyField{
- }
jackson开发所需jar包:
http://download.csdn.net/detail/dengwenwei121/8175727
分享到:
相关推荐
json 所需要的jackson-annotations-2.4.0.jar,jackson-core-2.4.2.jar, jackson-databind-2.4.2.jar,jackson-mapper-asl-1.9.11.jar
使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 双语对照,边学技术、边学英语。
spring mvc返回json数据需要用到的三个jar
jackson2.9.6(jackson-annotations-2.9.6.jar、jackson-core-2.9.6.jar、jackson-databind-2.9.6.jar)3个jar包齐全。
jackson
jackson-annotations-2.2.3.jar(Jackson解析需引入的包),这是解决java对象和json数据转换的工具类包。
jackson-annotations-2.5.4.jar jackson-core-2.5.4.jar jackson-databind-2.5.4.jar
解析json的jar包:jackson-core2.9.9、jackson-annotations2.9.9、jackson-databind2.9.9
jackson-databind-2.9.10.8.jar升级相关...jackson-jaxrs-json-provider-2.9.10.jar jackson-jaxrs-base-2.9.10.jar 下载地址 https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-databind/2.9.10.8/
含有 jackson-annotations.jar 、 jackson-core.jar 、 jackson-databind.jar
jackson json2.7版本,包括jackson-databind-2.7.0.jar、jackson-core-2.7.0.jar、jackson-annotations-2.7.0.jar
jackson-annotations-2.3.0.jar jackson-core-2.3.0.jar jackson-databind-2.3.0.jar jackson-jaxrs-base-2.3.0.jar jackson-jaxrs-json-provider-2.3.0.jar jackson-module-jaxb-annotations-2.3.0.jar
jackson-annotations-2.7.0.jar,将对象转换成json格式的标记。
jackson-annotations-2.0.0.jar jackson-core-2.0.0.jar jackson-databind-2.0.0.jar json-lib-2.4-jdk15.jar
jackson相关jar包,springmvc处理json数据所需jackson相关jar包. 1、jackson-annotations-2.2.3.jar 2、jackson-core-2.2.3.jar 3、jackson-core-asl-1.9.9.jar、 4、jackson-databind-2.2.3.jar 5、jackson-mapper-...
该项目旨在通过使用Jackson @Annotations从您的POJO生成jsonSchema,比原始的做得更好。 强调 JSON模式DRAFT-04,DRAFT-06,DRAFT-07和DRAFT-2019-09 使用JsonSchema的oneOf功能支持多态( @JsonTypeInfo , ...
Json lib jar包 2.9.8 包里有6文件 下载 jackson包 jackson-databind-2.9.8.jar jackson-core-2.9.8.jar jackson-annotations-2.9.8.jar jackson-mapper-asl-1.9.13.jar jackson-module-jaxb-annotations-2.9.8.jar ...
该资源为SpringMVC中json转换所需要的Maven仓库,如果maven下载包的时候速度太慢,可以使用我的这个资源,把这个直接考到本地Maven仓库即可。 对应的Maven依赖如下: <groupId>org.codehaus.jackson <artifactId>...
jackon是用于在java web的工程里解析json文件的jar包,这三个是jackson必备的jar包。
java运行依赖jar包