/ / R výstup do formátu JSON získa „_row“: v objektoch - json, r, rest, api

R výstup do JSON získať "_row": v objektoch - json, r, rest, api

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ď č. 1

Skú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.