0

我正在尝试使用第 3 方 JSON API,并且预计 null 值将根本没有提供任何值、被排除在结果之外或某些默认值。相反,如果值不存在,API 会返回 [] 来代替单个值(不是数组):

"SomeExpectedDate": [],
"SomeExpectedString": [],
...

当我尝试使用 JayRock JsonConvert 对其进行反序列化时,它失败了,因为我试图加载到单个 String 或 DateTime 值中。

这正常吗,还是我应该去向 API 提供者投诉(这是最近推出的 API)

4

2 回答 2

2

一般来说,没有。在 JSON[]中表示一个空数组。如果要表示空值,请使用null关键字。像:

{"someString": null}

尽管就您希望如何在 JSON 中表示空值而言,这完全取决于您。如果您编写接收代码以便它理解空数组等效于 null,那肯定会起作用。

然而,在我看来,这将是一种非常有问题/不可靠/难以维护的方法。使用关键字更有意义null,否则使用空字符串 ( {"someString": ""})。

编辑:

为了回应您关于此问题与使用第三方 API 相关的更新,我认为这绝对是 API 提供者处理的问题。[]如果他们真正的意思是,他们不应该回来null。虽然他们发送的内容在技术上仍然是有效的 JSON,但他们使用[]而不是null.

于 2012-10-07T01:56:11.387 回答
0

如果您使用的第三方 API 说空数组为空,那么这是完全有效的,您需要围绕它编写代码。

它肯定不同于我以前见过的任何东西,因为 json 有一个实际的null关键字,但它是完全合法的语法。

于 2012-10-07T02:23:25.540 回答