R列表/数据帧到JSON对象数组
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R列表/数据帧到JSON对象数组相关的知识,希望对你有一定的参考价值。
我正在尝试在R中使用jsonlite创建对象的JSON数组。目标是这样的JSON:
{
"top":[
{
"master1": {
"item1": "value1"
}
},
{
"master2": {
"item2": "value2"
}
}
]
}
我尝试了带有列表列的列表列表和数据框,但是无法获得所需的输出。除此之外,将上述内容与fromJSON / toJSON转换为其他格式:
library(jsonlite)
txt <- '{
"top":[
{
"master1": {
"item1": "value1"
}
},
{
"master2": {
"item2": "value2"
}
}]
}'
toJSON(fromJSON(txt), pretty = T)
# Output
{
"top": [
{
"master1": {
"item1": "value1"
},
"master2": {}
},
{
"master1": {},
"master2": {
"item2": "value2"
}
}
]
}
我需要为此设置一个参数吗?
答案
默认情况下,fromJSON
调用将您的输入转换为数据帧,并因此添加NA
值,从而导致输出JSON中的条目为空:
$top
item1 item2
1 value1 <NA>
2 <NA> value2
您需要将simplifyDataFrame = FALSE
添加到fromJSON
调用中,以防止其创建数据帧。
toJSON(fromJSON(txt, simplifyDataFrame = FALSE), pretty = T)
给予
{
"top": [
{
"master1": {
"item1": ["value1"]
}
},
{
"master2": {
"item2": ["value2"]
}
}
]
}
以上是关于R列表/数据帧到JSON对象数组的主要内容,如果未能解决你的问题,请参考以下文章
错误代码:错误域 = NSCocoaErrorDomain 代码 = 3840“JSON 文本没有以数组或对象和允许未设置片段的选项开头。”
Alamofire 文件上传出现错误“JSON 文本未以数组或对象开头,并且允许未设置片段的选项”