差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

下次修改
前次修改
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>​