使用toJSON创建空对象(空括号)

时间:2013-11-21 00:07:31

标签: json r rjson

我需要使用toJSON从R创建一个JSON字符串。我的问题是JSON的一部分应该包含一个空的JSON对象{}。我以为list()会为我做这件事:

> fromJSON("{}")
list()
> toJSON(list())
[1] "[]"

[划痕头]

有人知道如何使用{}获取toJSON吗?我使用的是执行编码的lib,所以不使用toJSON的答案对我没用。

谢谢!

1 个答案:

答案 0 :(得分:5)

有许多软件包具有toJSONfromJSON功能。

使用rjson::fromJSON时,'{}'会以list的长度0读入,而RJSONIO::fromJSON会将{}作为{named list读入1}}长度为0。

在任一软件包中,在命名列表上调用fromJSON都可以执行您想要的操作。

显然,RJSONIO正在按照您的意愿执行

RJSONIO::toJSON(RJSONIO::fromJSON('{}'))
## [1] '{}'

rjson::toJSON(rjson::fromJSON('{}'))
## [1] "[]"

如果您使用rjson,则必须手动设置names

长度列表的0
rjson::toJSON(setNames(rjson::fromJSON('{}'), character(0)))
## [1] "{}"