有没有办法读取这个json而不会通过jackson导致nullpointer异常。
{
"years": [
null
]
}
years是一个String
数组当没有年份时,这也是json的有效格式吗?
答案 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来处理没有年份的情况。只是让你的生活更轻松。