当前位置: 首页 > 面试题库 >

无法在JSON对象中放入空值

谈炳
2023-03-14
问题内容

我正在尝试使用JSON将参数传递给api。

class Sample
{ ...
   String token;
...

void method()
{ ...
    JSONObject params = new JSONObject();
    params.put(KEY_TOKEN,token);
    params.put(KEY_DATE,date);

    Log.e("params ",params+"");


      ...  }

我得到了params的价值,{"date":"2017-06-19"}但是令牌却无处可见。我尚未初始化令牌,并且其值为null作为其实例变量。难道不包括未初始化的值吗?


问题答案:

在文档的第一段中:

值可能不是nullNaNs,无穷大,也不能是此处未列出的任何类型。

所以是的,它是 “ …null不包含值的东西…” _ (编辑:这是您原始问题的引号;您更新后的问题将其更改为“未初始化的值”,但是对象引用的默认值为null,所以…)_

但是,这是该类的“功能”。JSON本身null就很好理解。在文档的更下方,它说您使用“信度值”
NULL来表示null。似乎…很奇怪。有一个关于它的注释:

警告 :此类null以两种不兼容的方式表示:标准Java null引用和sentinel值NULL。特别是,调用put(name, null)会从对象中删除已命名的条目,但会put(name, JSONObject.NULL)存储值为的条目JSONObject.NULL

所以:

params.put(KEY_TOKEN, token == null ? JSONObject.NULL : token);


 类似资料:
  • 我正在制作这个基于控制台的游戏。 但我不明白这一点,也不明白为什么这样做是错误的。 所以基本上我有10个房间,所以一个房间有以下东西: -房间号码 -hashmap,其中包含一个Room作为值和一个String作为键 现在的问题是,一个房间可以从4个方向北、东、南、西退出,所以这是哈希图中的字符串/键。 它也可以有2个出口或1或3个。 所以在那个哈希图中,我将方向保存为键和值另一个房间对象,这样我

  • 我从服务器收到json格式的响应,方法是使用restAsaud使用java点击post Request。 现在我想获取名为“freebies”的子json对象。如何执行此操作,因为在写入时: 我得到了stackoverFlow错误。 请帮帮忙。

  • 我正在使用Envers来审核表,但它正在为未知/不存在的表创建一些审核表。它看起来像多对一关系的多对多关系审计表。 这是对的吗?如果是,为什么? 但当我尝试删除和HorarioFixo时,我遇到了一个错误。 我收到的错误: 这是SQL重复: 所有这些都是代码的一部分。如果你需要更多,请留下评论。 我的班级: 我的映射: 新罕布什尔州和恩维尔斯配置:

  • 问题内容: 寻找所有的行,其中某个json列包含一个空对象。对于JSON数组,或者在对象中寻找特定键,这是可能的。但是我只想知道对象是否为空。似乎找不到要执行此操作的运算符。 问题答案: 有 没有平等(或等于)运算符 的数据类型 作为一个整体,因为平等是很难建立。 在可行的情况下,请考虑使用Postgres 9.4或更高版本。有关dba.SE(上一章)的相关答案中的更多详细信息: 如何从Postg

  • 我们的REST API接收一些JSON对象输入,其中一些字段要求为非空。这些可以是String/Intger,甚至可能是其他一些类实例作为引用。 我们试图找到一种方法来强制这些字段不为null,而不是API中null检查的正确方法。当前: 我们想要的是: 我们尝试了3件事: 1) 升级至jackson 2.0.6并使用annotation com。fasterxml。杰克逊。注释。JsonProp

  • 问题内容: 我在JSON方面遇到问题,我似乎无法弄清为什么它不起作用。这应该输出JSON。 这是我的代码 我收到这个错误 如果有人可以救援,那就太好了! 问题答案: 看来您的JSON无效。在这种情况下,这完全取决于服务器发送给您的数据(您未显示)。我建议通过JSON验证程序运行响应。