Опитвам се да взаимодействам с API за почивка, използвайки R. Искам да мога да преобразувам от JSON и след това обратно в JSON в същия формат.Но от JSON: (Откъс)
"access": {
"read": true,
"update": true,
"externalize": false,
"delete": true,
"write": true,
"manage": true
Бягам :
df<-jsonlite::fromJSON(r)
И се върна df с колони:
access.read TRUE
access.update TRUE
(etc)
След това, когато го пусна обратно:
df <- jsonlite::toJSON(df)
Получавам:
"access": {
"read": true,
"update": true,
"externalize": false,
"delete": true,
"write": true,
"manage": true,
"_row": "1"
},
Вижте долната линия _row, която корумпира моето PUT обратно в REST.
Или ако добави df <- jsonlite :: toJSON (df, flatten = TRUE)
Взимам:
"access.read": true,
"access.update": true,
"access.externalize": false,
"access.delete": true,
"access.write": true,
"access.manage": true,
Което не изглежда да чете / внася много добре в моя 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
параметър надолу и това ще отстрани проблема ви.