读取带有null值的json时的NullpointerException

时间:2014-12-19 22:03:16

标签: java json jackson

有没有办法读取这个json而不会通过jackson导致nullpointer异常。

{
    "years": [
        null
    ]
}

years是一个String

数组

当没有年份时,这也是json的有效格式吗?

1 个答案:

答案 0 :(得分:2)

如果仔细查看Jackson的教程,您会发现此库为空数组生成的JSON使用此表示法:{ "empty" : [ ]}

因此,在将JSON发送给Jackson之前,您可以尝试使用空数组替换数组中的任何单个null值,它应该接受而不会抛出任何异常。

通常,'空'数组的成员实际上是有效的JSON语法。另见http://en.wikipedia.org/wiki/JSON。数组的成员可以是任何类型,因此它们可以是:

  • 字符串
  • 数字
  • 布尔人
  • 阵列
  • 物件

但是,对于您的使用场景,我建议使用空数组,因为它更容易编程。例如,考虑一个用例,在这个用例中,您可以在每个'岁月中调用一些函数f()。它想要一个整数输入。代码就像     foreach(x in array){f(x);}会失败,因为您会使用' null'来呼叫f()键入而不是整数,导致错误。如果您改为使用空数组,那么将发生正确的行为,而不必通过显式查找null来处理没有年份的情况。只是让你的生活更轻松。