Snažím sa komunikovať s odpočinkovým API pomocou R. Chcem, aby bolo možné prevádzať z JSON a potom späť do JSON v rovnakom formáte. Ale; z JSON: (výňatok)
"access": {
"read": true,
"update": true,
"externalize": false,
"delete": true,
"write": true,
"manage": true
Bežím :
df<-jsonlite::fromJSON(r)
A vráťte df so stĺpcami:
access.read TRUE
access.update TRUE
(etc)
Keď to potom spustím späť:
df <- jsonlite::toJSON(df)
Mám buď:
"access": {
"read": true,
"update": true,
"externalize": false,
"delete": true,
"write": true,
"manage": true,
"_row": "1"
},
Pozri spodný riadok _row, ktorý poškodzuje môj PUT späť na REST.
Alebo ak pripojím df <- jsonlite :: toJSON (df, flatten = TRUE)
Dostávam:
"access.read": true,
"access.update": true,
"access.externalize": false,
"access.delete": true,
"access.write": true,
"access.manage": true,
Zdá sa, že sa mi do môjho REST Api veľmi dobre nečíta / neimportuje.
Máte nejaké návrhy, ako to vyriešiť? Zdá sa mi, že nenájdem nič, čo by googlovalo tento problém ..
Vďaka!
odpovede:
0 pre odpoveď č. 1Skúste ...
back_to_JSON <- jsonlite::toJSON(df, rownames = FALSE)
Na toJSON()
funkcia v jsonlite
Balík nemá o tomto správaní žiadnu dokumentáciu. Prezeranie kódu však ukazuje, že sa používa asJSON()
pod kapotou.
Zdrojový kód metódy S3 asJSON.data.frame
je na GitHub. V čase, keď sa to napíše, riadky 14-21 sa zaoberajú touto otázkou. Pomocou ...
vo vašom toJSON()
hovor prejde rownames = FALSE
parameter down a tým sa váš problém vyrieši.