核心的方法就是最后writeWithMessageConverters(returnValue, returnType, inputMessage, outputMessage)
那这些HttpMessageConverter是如何的注册到sb中的呢,肯定也是configure的配置了,在sb中提供了多处的configure来注册HttpMessageConverter。一个是
HttpMessageConvertersAutoConfiguration,在改配置文件中注册了一个
StringHttpMessageConverter的bean,由于import
由于我的classpath是有jackson的,所以跟到JacksonHttpMessageConvertersConfiguration,其中注册了一个MappingJackson2HttpMessageConverter的bean,
而在生成HttpMessageConverters bean的时候会调用WebMvcConfigurationSupport类的addDefaultHttpMessageConverters方法,在这蠢扮空个里面会继续的缺穗注册一些默认使用到的消息转换器。带瞎
如下
通过这样的方式,sb在启动成功之后,在容器里面就有了这些默认的消息转化器,当然我们可以自定义消息转换器,然后注册进去,也可以实现我们的自定义逻辑
1、xml 区分大小写2、xml在编写的棚腔时候最好全部大写或者伍和睁全部小写
localName指腔岁定本地名称
localName指定root的根路径的名称,默认值为类名
这个注解写在类上,用来忽略在xml中有的属性但是在类中没有的情况
这个详细说下
这个的含义是指定XML元素用于List或者Map ,默认值userWrapping=true,代表使用包装器元素
这句话 比较难懂 我使用一个具体示例来说下
读取的xml的文件
当使用@JacksonXmlElementWrapper(useWrapping = false) 相当于不使用包装器元素,相当于List内部的实例是不用的,使用list外层为多个实例。
如果使用@JacksonXmlElementWrapper(useWrapping = true)或者默认 的话,对应的xml应该该为
Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象ObjectMapper类是Jackson库的主要类。它称为ObjectMapper的原因是因为它将JSON映射到Java对象(反序列化),或将Java对象映射到JSON(序列化)。它使用JsonParser和JsonGenerator的实例实现JSON实际的读/写。
三种方式
1.Jackson通过将JSON字段的名称与Java对象中的getter和setter方法相匹配,将JSON对象的字段映射到Java对象中的字段。Jackson删除了getter和setter方法名称的“get”和“set”部分,并将剩余名称的第一个字符转换为小写。
2.Jackson还可以通过java反射进行匹配
3.通过注解或者其它方式进行自定义的序唤脊列化和反序列化程序。
2.Read Object From JSON Reader
3.Read Object From JSON File
本例使用的是文件URL,也可使用一个HTTP URL(如: http://jenkov.com/some-data.json ).
6.Read Object From JSON Byte Array
7.Read Object Array From JSON Array String
ObjectMapper write有三个方法
使用和敏渗Jackson可以读取和写入除JSON之外的其他数据格式:
其中这些数据格式比JSON更紧凑,因此在存储时占用的空间更少,并且读取和写入速度比JSON更快。在以下部分中,我将向您展示如何使用Jackson读取和写入其中一些数据拿亩格式。
CBOR是一种二进制数据格式,它与JSON兼容,但比JSON更紧凑,因此读写速度更快。Jackson ObjectMapper可以像读写JSON一样读写CBOR。为了使用Jackson读取和写入CBOR,您需要为项目添加额外的Maven依赖项。介绍了添加Jackson CBOR Maven依赖关系:
MessagePack是一种文本数据格式,与JSON兼容,但更紧凑,因此读写速度更快。Jackson ObjectMapper可以像读写JSON一样读写MessagePack。为了使用Jackson读写MessagePack,您需要为项目添加额外的Maven依赖项:
YAML是一种文本数据格式,类似于JSON,但使用不同的语法。Jackson ObjectMapper可以像读写JSON一样读写YAML。为了使用Jackson读取和写入YAML,您需要为项目添加额外的Maven依赖项:
ObjectMapper 可以通过自定义解析器来定义解析方法
以下是自定义的反序列化的方法
注册到objectMapper中
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)