com.fasterxml.jackson将对象序列化成json时,出现在json里的属性名称是怎么来的
如果不考虑用任何annotation指定出现在json string里的属性名称的话,默认的逻辑是将getter方法里,“get”之后的字符串的首字母小写。
比如:
getJerDryContent()
提取出的属性名为jerDryContent.
getDiabloId()
提取成diabloId.
请看测试代码:
package jacksonTest;public class BrandName {// Jerry 2017-08-25 9:19PM: after I change id to id2, the deserialization from string
// to object can still work, which proves that the conversion is not done
// based on ATTRIBUTE NAMEprivate Integer id2; private String content5;public Integer getDiabloId() {return id2;}public BrandName(Integer id3, String content3){this.id2 = id3;this.content5 = content3;}
// Exception in thread "main" com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "id" (class jacksonTest.BrandName), not marked as ignorable (2 known properties: , "pp", "content"])// public void setPP(Integer id) {public void setJerry2Id(Integer id4){this.id2 = id4;}public String getJerDryContent() {return content5;}public void setTomcontent(String name) {this.content5 = name;}@Overridepublic String toString() {return "BrandName [id4=" + id2 + ", content4=" + content5 + "]";}
}
package jacksonTest;import java.io.IOException;import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;public class JacksonTest {@SuppressWarnings("unused")private static void string2Object() throws JsonParseException, JsonMappingException, IOException{ObjectMapper objectMapper = new ObjectMapper();String DATA = "{\r\n" + " \"id\": 123,\r\n" + " \"name\": \"The Best Product\",\r\n" + " \"brand\": {\r\n" + " \"id\": 234,\r\n" + " \"content\": \"ACME Products\"\r\n" + " }\r\n" + "}";ProductTest productTest = objectMapper.readValue(DATA, ProductTest.class);System.out.println(productTest.toString());}private static void object2String() throws JsonProcessingException{BrandName b = new BrandName(11, "sap");ProductTest p = new ProductTest(12, "Jerry", b);ObjectMapper mapper = new ObjectMapper();String jsonInString = mapper.writeValueAsString(p);System.out.println("JSON: " + jsonInString);}public static void main(String[] args) throws JsonParseException, JsonMappingException, IOException {// string2Object();object2String();}}
package jacksonTest;import com.fasterxml.jackson.annotation.JsonProperty;public class ProductTest {private int productId;private String productName;private BrandName brandName;public ProductTest(int id, String Name, BrandName brandName){this.productId = id;this.productName = Name;this.brandName = brandName;}@JsonProperty("id") // this should match the attribute in JSON filepublic int getProductId() {return productId;}public void setProductId(int productId) {this.productId = productId;}@JsonProperty("name")public String getProductName() {return productName;}public void setProductName(String productName) {this.productName = productName;}@JsonProperty("brand")public BrandName getBrandName() {return brandName;}public void setBrandName(BrandName brandName) {this.brandName = brandName;}@Overridepublic String toString() {return "ProductTest [productId=" + productId + ", productName=" + productName + ", brandName=" + brandName+ "]";}
}
输出结果:
JSON: {“id”:12,“name”:“Jerry”,“brand”:{“diabloId”:11,“jerDryContent”:“sap”}}
com.fasterxml.jackson将对象序列化成json时,出现在json里的属性名称是怎么来的相关推荐
- java 序列化成xml文件_将Java对象序列化成JSON和XML格式
1.先定义一个Java对象Person: public class Person { String name; int age; int number; public String getName() ...
- Java对象序列化乱码6_对象序列化成字符串乱码解决
问题描述: 将一个对象序列化成字符串后,字符串是乱码的,并且反序列化报错. 代码如下: import com.alibaba.fastjson.JSONObject; import org.sprin ...
- 将Java对象序列化成XML格式,将XML反序列化还原为Java对象
摘要:将Java对象序列化成XML格式,将XML反序列化还原为Java对象. 一:创建Maven工程,引入xstream依赖: <!--xstream--><dependency&g ...
- ISerializable与BinaryFormatter配合,实现将对象序列化成stream,可以保存或网络传输与反序列化
C#中ISerializable与BinaryFormatter配合,可以实现将对象序列化成stream,进而可以保存或网络传输以及进行反序列化. (注意: 这是一个年代久远了的知识点!) 以下是网上 ...
- 对象序列化成JSON格式
json是一种轻量级的数据交换语言,将对象序列化为json格式,可以在网络上传输,且各个平台都有成熟的工具,可以很快的将json反序列化为对应语言所需要的格式. 将java对象序列化为json格式关键 ...
- C#将对象序列化成JSON字符串
using System.Web.Script.Serialization; public void ProcessRequest(HttpContext context) { context.Res ...
- XmlSerializer 对象序列化成XML 自定义编码格式(gb2312)
随着面向服务(SOA)的开发方式的兴起,客户端和服务端之间的消息传送,很多采用了XML的格式.但是大家在日常的开发中,应该会有这么种体验,就是组织xml格式的代码太繁琐,这篇随笔也是为了和大家分享下简 ...
- 将python对象序列化成php能读取的格式(即能反序列化到对象)
转载自:http://my.oschina.net/zuoan001/blog/94914 代码如下: #coding:utf-8 # vim: encoding=utf-8:ft=python:et ...
- 关于DateTime对象序列化为Json之后的若干问题
将Datetime对象序列化成Json对象是常有的事情,微软的序列化方法会将Datetime对象序列化成一个字符串: "\/Date(1234656000000)\/" 这样的字符 ...
最新文章
- Android 中自定义控件和属性(attr.xml,declare-styleable,TypedArray)的方法和使用
- linux 进程等待 wait 、 waitpid
- SQL Server 2005 镜像构建说明(转载)
- [20161208]等待事件enq: HW - contention
- python进程数上限_python – 使用具有最大同时进程数的multipr...
- Code Complete
- php get header url,php函数get_headers是HEAD请求还是GET请求
- UE4导入字体 ttf
- 无人驾驶技术——雷达Clutter, CFAR,AoA
- 音乐标签修改 android,音乐标签Android版
- 初识Linux与运维
- 稳定的服务器主板,高稳定英特尔S2400SC2双路服务器主板
- B-S架构和C-S架构区别
- 程序员跳槽时,如何高效地准备面试
- Moore Voting
- FPGA第三节:IP调用实现HDMI输出
- Jupyter notebook 创建新笔记本出错
- 推荐1款免费在线OCR文字识别服务,识别特别准确!
- 计算机学院文化节主题,计算机学院第八届电脑文化节策划精选.doc
- 说话技巧,,言多必失