2010-08-06 154 views
1

然后我从R使用rjson读取JSON文件,似乎JSON数组(包含在[]中)被转换为(未命名)R列表,而不是向量。从R读取JSON数组

因此,我必须先将这些列表中的每一个都列入unlist(recuresice=F),然后才能使用它们。

  1. 这个 转换我有什么逻辑吗?我的意思是,为什么 使用一个列表(而不是一个向量)来 存储数组?
  2. 有没有什么办法来控制rjson的这种行为(或者 也许是另一个推荐的JSON 解析器)?
+0

我知道的唯一另外一个就在这里(简要讨论RJSONIO和rjson之间的区别):http://www.omegahat.org/RJSONIO/ – 2010-08-06 19:06:05

+0

今天,我遇到了同样的情况,我也用过如你所做的那样取消列表(递归= F)。它看起来是一种使用RJSON数据的自然方式。但是,我们确实需要一个优雅的解决方案 – Leo5188 2012-09-27 01:53:14

回答

2

JSON数组可以存储不同类型的值,因此它们相当于R未命名列表。

+0

+1啊......这是有道理的。谢谢! – 2010-08-06 18:18:43

+0

好点;遗憾的是,部分不支持未命名列表:> toJSON(list(1,2)) [1]“[1,2]” > toJSON(c(1,2)) [1] “ – piccolbo 2011-05-14 04:40:42

+0

@piccolbo嗯,这只是R的对象模型与JavaScript的不兼容;单元向量是另一个例子。 – mbq 2011-05-14 07:17:15