有没有人知道是否有一种方法可以禁用JsonArray的漂亮打印?结果如下:
{ "name": "example", "array": [ 1, 2, 3, 4, 5 ] }
当我想要它像这样出来的时候:
{ "name": "example", "array": [1, 2, 3, 4, 5] }
g0czyy6m1#
漂亮的打印和格式化之间有语义上的区别,所以我会把这个问题重新表述为 * 为什么Gson不支持格式化 *?嗯,因为它不应该支持格式化。然后,我会说,你不可能为复杂对象实现一个有效的格式化程序来满足你所有的风格偏好。例如,有很多开放的问题:- 您的数组是否如此简单,以至于它们只包含一个数字序列?-如果数组包含各种类型的元素,而对象仅作为其#10000元素,该怎么办:如果计数为百万,那么要为其他元素缓冲多少JSON输出?等等,等等......好吧,不要为这个费心,只要不对缩小的输出使用漂亮的打印,或者对整个文档使用它就行了。但是,如果您仍然认为这是一个好主意,并且它可以满足您的需求(可能不复杂),那么使用定制的JsonWriter扩展可能会有所帮助:第一个请注意,如果将缩进设置为非空,则将始终在JsonWriter中生成一个新行,否则对象和数组元素之间将没有偶数空格。您可以尝试改进它,但我怀疑是否值得这样做。或者尝试找到一个专用的格式库。Gson在这里绝对不是一个好工具。
JsonWriter
1条答案
按热度按时间g0czyy6m1#
漂亮的打印和格式化之间有语义上的区别,所以我会把这个问题重新表述为 * 为什么Gson不支持格式化 *?嗯,因为它不应该支持格式化。然后,我会说,你不可能为复杂对象实现一个有效的格式化程序来满足你所有的风格偏好。例如,有很多开放的问题:- 您的数组是否如此简单,以至于它们只包含一个数字序列?-如果数组包含各种类型的元素,而对象仅作为其#10000元素,该怎么办:如果计数为百万,那么要为其他元素缓冲多少JSON输出?等等,等等......好吧,不要为这个费心,只要不对缩小的输出使用漂亮的打印,或者对整个文档使用它就行了。
但是,如果您仍然认为这是一个好主意,并且它可以满足您的需求(可能不复杂),那么使用定制的
JsonWriter
扩展可能会有所帮助:第一个
请注意,如果将缩进设置为非空,则将始终在
JsonWriter
中生成一个新行,否则对象和数组元素之间将没有偶数空格。您可以尝试改进它,但我怀疑是否值得这样做。或者尝试找到一个专用的格式库。Gson在这里绝对不是一个好工具。