Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用rjson强制将字符编码为数组?_Json_R - Fatal编程技术网

如何使用rjson强制将字符编码为数组?

如何使用rjson强制将字符编码为数组?,json,r,Json,R,与长文本相比,让我们从一个示例开始: library(rjson) toJSON(list(names = c("paul"))) # [1] "{\"names\":\"paul\"}" toJSON(list(names = c("paul", "henri"))) # [1] "{\"names\":[\"paul\",\"henri\"]}" 在第一个示例中,名称是字符串,而在第二个示例中,名称是数组。在这种特殊情况下,我想强制R始终渲染数组 注意:我也尝试了RJSONIO库,但这将真

与长文本相比,让我们从一个示例开始:

library(rjson)
toJSON(list(names = c("paul")))
# [1] "{\"names\":\"paul\"}"
toJSON(list(names = c("paul", "henri")))
# [1] "{\"names\":[\"paul\",\"henri\"]}"
在第一个示例中,名称是字符串,而在第二个示例中,名称是数组。在这种特殊情况下,我想强制R始终渲染数组

注意:我也尝试了RJSONIO库,但这将真正编码一切。例如,我仍然希望国家成为一根弦

library(RJSONIO)
toJSON(list(county="France", names = c("paul")), asIs = T)
# [1] "{\n \"county\": [ \"France\" ],\n\"names\": [ \"paul\" ] \n}"

有什么方法可以做到这一点吗?

在非常类似的软件包中,您可以使用
asIs
参数将单个数字表示为向量(在R中经常发生):

否则,如果您想继续使用
rjson
包,您可以利用列表总是转换为向量的事实(即使它们只包含一个值):
(请注意,对于带有
asIs=FALSE
RJSON
包,这一点也适用,因为正如我所说,它们非常相似)


添加了一个涉及RJSON的解决方案
列表(“paul”)
起了作用。谢谢。
library(RJSONIO)
toJSON(list(names = c("paul")),asIs=TRUE)

# result:
# [1] "{\n \"names\": [ \"paul\" ] \n}"
library(rjson)
toJSON(list(country="France", names = list("paul")))
# or: toJSON(list(country="France", names = as.list(c("paul"))))

# result:
[1] "{\"country\":\"France\",\"names\":[\"paul\"]}"