我尝试使用R与其他API进行交互。我希望能够以相同的格式从JSON转换回JSON。但;来自JSON: (节选)
echo "___________$(/usr/bin/date)___________"
total=$(/usr/bin/df | /usr/bin/awk 'NR > 1 && NR < 9{s+=$5}END{print s}')
if (( total >= 90 ))
then
echo "greater"
else
echo "Space occupied $total%"
fi
我跑:
"access": {
"read": true,
"update": true,
"externalize": false,
"delete": true,
"write": true,
"manage": true
用柱子取回df:
df<-jsonlite::fromJSON(r)
当我然后回来时:
access.read TRUE
access.update TRUE
(etc)
我得到了:
df <- jsonlite::toJSON(df)
请参阅底线_row,这会破坏我的PUT回到REST。
或者,如果我追加df&lt; - jsonlite :: toJSON(df,flatten = TRUE)
我明白了:
"access": {
"read": true,
"update": true,
"externalize": false,
"delete": true,
"write": true,
"manage": true,
"_row": "1"
},
我似乎没有很好地阅读/导入我的REST Api。
有关如何解决此问题的任何建议?我似乎找不到任何谷歌搜索这个问题..
谢谢!
答案 0 :(得分:1)
...试
back_to_JSON <- jsonlite::toJSON(df, rownames = FALSE)
toJSON()
包中的jsonlite
函数没有关于此行为的任何文档。但是,查看代码表明它使用了asJSON()
。
S3方法asJSON.data.frame
的源代码位于github。截至撰写本文时,第14-21行解决了这个问题。使用...
来电中的toJSON()
会将rownames = FALSE
参数向下传递,这样可以解决您的问题。