我们正在构建一个使用和生成 JSON 的 Web 服务。
问题: 我们对如何表示对象的某些特定细节感到有点困惑。
示例:我们在 JSON 中将任何空元素或 null 元素指定为 null
我们问自己的问题是,当一个对象的属性全部为空时,我们如何表示一个对象。
示例:car 是一个对象,color 和 make 是属性,均为 null。
我们将其表示为
car : {
"color": null,
"make" : null
}
有些人认为它应该表示为
car : null
所以可以说, car : null 是正确的方法。 car 并不是域对象的精确表示。它是域对象的一部分,我们称之为大汽车。所以我们在某种翻译器中制作汽车 View 对象。因此,我们找到了一种痛苦的方法来检查 car 对象中的每个字段,如果它们为 null,则将 car 设置为 null,以便 jackson jaxb 提供程序可以将其呈现为 null。我知道这不是正确的方法。
有人可以提出替代方案吗?
有没有一个地方我们可以检查是否有任何 View 对象的所有子项都为空?然后将其设置为 null。
哪种方式更消耗?
最佳答案
如果我理解正确的话,您试图代表三种不同的情况。一个是没有汽车,另一个是有一辆汽车,但我们对它一无所知,最后一个是有一辆汽车,我们对它有所了解(也许是关于它的一切)。那么可能存在三种情况:
(1) 里卡多没有车
'ricardo': {
'car': null
}
(2) 里卡多有一辆车,但我们对此一无所知
'ricardo' : {
'car' : {
'color' : null,
'make' : null
}
}
(3) 里卡多有一辆车,我们对它有所了解(或一切)
'ricardo' : {
'car' : {
'color' : 'red',
'make' : 'ferrari'
}
}
您需要确定需要建模的内容并相应地进行表示。检查here供最终引用。
关于java - 标准 JSON 表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3322712/