R输出到JSON得到" _row" :在对象中

时间:2017-02-16 14:57:08

标签: json r rest api

我尝试使用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。

有关如何解决此问题的任何建议?我似乎找不到任何谷歌搜索这个问题..

谢谢!

1 个答案:

答案 0 :(得分:1)

...试

back_to_JSON <- jsonlite::toJSON(df, rownames = FALSE)

toJSON()包中的jsonlite函数没有关于此行为的任何文档。但是,查看代码表明它使用了asJSON()

S3方法asJSON.data.frame的源代码位于github。截至撰写本文时,第14-21行解决了这个问题。使用...来电中的toJSON()会将rownames = FALSE参数向下传递,这样可以解决您的问题。