2013-05-07 77 views
0

我的JSON流可以每次都不同。例如,有時可以包括「歌曲」字段,有時不包含。android-jackson將空字段值作爲空字符串

我得到這個字段值asText?如果Jackson沒有定義這個值爲空字符串,該如何判斷?

"Content": "MusicContent", 
"Song": "Track_1", 

如果嘗試node.get( 「宋史」)。asText(),它會給 「Track_1」 現在

"Content": "MusicContent", 

,如果我試圖讓node.get( 「宋」)它給空指針異常。我想在調用asText()時獲得一個空字符串。

我該怎麼做?

謝謝

回答

0

您可以在調用節點上的asText()之前檢查null。我可能會做這樣的:

if (node.get("Song") != null){ 
    myString = node.get("Song").asText(); 
} else { 
    myString = ""; 
} 

還是在這樣一個奇特的方式:

myString = ((node.get("Song")!=null) ? node.get("Song").asText() : ""); 
+0

感謝您的答覆。而不是檢查每個節點,我想可能傑克遜有這個映射功能。 – dracula 2013-05-07 10:57:34

+0

那麼,如果你打算爲它建立一個POJO,那麼它已經不是什麼大事了。只是一個'''getContent()'''方法來檢查'''mContent''是否返回一個空字符串。 – 2013-11-25 13:15:10