差異處
這裏顯示兩個版本的差異處。
下次修改 | 前次修改 | ||
java:jackson:helloworld [2016/02/16 23:11] tony 建立 |
java:jackson:helloworld [2023/06/25 09:48] (目前版本) |
||
---|---|---|---|
行 41: | 行 41: | ||
} | } | ||
} | } | ||
+ | </code> | ||
+ | 這裡必須特別注意的是,Jackson會優先使用get method為欄位名稱。下面這個範例所輸出的ss值為test而不是test2,即使對ss加上@JsonProperty(value="ss")也是test: | ||
+ | <code java> | ||
+ | public String ss = "test2"; | ||
+ | |||
+ | public String getSS(){ | ||
+ | return "test"; | ||
+ | } | ||
+ | </code> | ||
+ | 一般的member宣告會使用m開頭,如果@JsonProperty的value和get method不同,就會導致同時輸出method欄位與@JsonProperty宣告的欄位: | ||
+ | <code java> | ||
+ | @JsonProperty(value="s1") | ||
+ | private String mss = "test2"; | ||
+ | |||
+ | public String getSS(){ | ||
+ | return "test"; | ||
+ | } | ||
+ | </code> | ||
+ | Output: | ||
+ | <code> | ||
+ | "ss":"test","s1":"test2" | ||
</code> | </code> | ||
===== Convert to json ===== | ===== Convert to json ===== | ||
行 48: | 行 69: | ||
ObjectMapper mapper = new ObjectMapper(); | ObjectMapper mapper = new ObjectMapper(); | ||
- | JsonGenerator generator = null; | + | JsonGenerator generator = mapper.getFactory().createGenerator(System.out); |
- | try { | + | |
- | generator = mapper.getFactory().createGenerator(System.out); | + | |
- | User u = new User(); | + | User u = new User(); |
- | u.setID("user"); | + | u.setID("user"); |
- | u.setPasswd("123456"); | + | u.setPasswd("123456"); |
- | generator.writeObject(u); | + | generator.writeObject(u); |
- | } finally { | + | |
- | closeStream(generator); | + | |
- | } | + | |
- | } | + | |
- | + | ||
- | private void closeStream(Closeable aCloseable){ | + | |
- | if (aCloseable != null) | + | |
- | try { | + | |
- | aCloseable.close(); | + | |
- | } catch (IOException e) { | + | |
- | } | + | |
} | } | ||
</code> | </code> | ||
行 79: | 行 87: | ||
public void testXmlGenerator() throws IOException { | public void testXmlGenerator() throws IOException { | ||
XmlMapper mapper = new XmlMapper(); | XmlMapper mapper = new XmlMapper(); | ||
- | JsonGenerator generator = null; | + | JsonGenerator generator = mapper.getFactory().createGenerator(System.out); |
- | try { | + | |
- | generator = mapper.getFactory().createGenerator(System.out); | + | |
- | User u = new User(); | + | User u = new User(); |
- | u.setID("user"); | + | u.setID("user"); |
- | u.setPasswd("123456"); | + | u.setPasswd("123456"); |
- | generator.writeObject(u); | + | generator.writeObject(u); |
- | } finally { | + | |
- | closeStream(generator); | + | |
- | } | + | |
} | } | ||
</code> | </code> |