2013-05-07 78 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