NutzCN Logo
问答 java对象转json时,对象中String类型的字段默认值为“”,怎么实现?
发布于 2926天前 作者 mingkaili 7156 次浏览 复制 上一个帖子 下一个帖子
标签:

java对象:
class stuendt{
private Stirng aa;
private int bb;

对Student进行实例化时,aa和bb字段都没有赋值。直接对该对象进行序列化。
序列化结果:
{
"stu":{
"aa":null,
"bb":-1
}
}

根据json协议,是不是aa字段序列化完成后的默认结果应该是“”,不应该是null?
上面该怎么将java对象中的String字段,序列化时默认成“”

13 回复

给我个链接,变成空字符串的说明

@mingkaili

值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array)。这些结构可以嵌套。

@mingkaili 若对方的库不支持null只能说太垃圾

去github报个issue吧,考虑在JsonFormat里面加个配置项

@wendal C的语言真的不支持啊。

@mingkaili 不是c语言不支持,是你们用的那个库不支持

@wendal
值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array)。这些结构可以嵌套。
String 里面也不包含null啊。再者说字符串的值,都应该带“”的不是。

字符串,即使在c里面,也是char*,char* c = NULL 是合法的,空字符串跟NULL是不一样的

NULL != "" 

这个我明白。
我说的意思是,抛开语言的特点,单单从json的定义出发,json里面是String类型的字段,其值还可以是null吗?按照上面的定义,其值应该是字符串或者字符。不应该是null。我不知道我理解的是否正确?

@mingkaili 你理解错了, json中值的类型是未知的.

json里面没有约束一个值的具体类型, 就是说 {"key":value} 中的value是没有*类型信息*的,也没有信息可以推导出value必须是什么类型,正是如此, Json才能做到跨编程语言.

添加回复
请先登陆
回到顶部