Невозможно десериализовать экземпляр с помощью R POST () - PullRequest
0 голосов
/ 25 июня 2019

Я пытаюсь получить queryID с помощью функции POST () в R. Он работает хорошо, пока я использую только простой JSON

library(httr)
library(jsonlite)

base_json <- paste('
{
  "segment" : "WHG_M"
}
')

id <- POST("url", 
           body = fromJSON(base_json), 
           encode = "json", 
           authenticate(username,password, type = "basic"))

Однако, когда я пытаюсь включить дополнительные условия, т.е.:

base_json <- paste('
{
  "segment" : "WHG_M",
  "administrativeSpatialFilter" : {
    "municipalityCodes" : [ 11000000 ]
  }
}
')

Я получаю следующую ошибку для POST ():

Cannot deserialize instance of `java.util.ArrayList` 
out of VALUE_NUMBER_INT token

с

fromJSON(base_json)

$segment
[1] "WHG_M"

$administrativeSpatialFilter
$administrativeSpatialFilter$municipalityCodes
[1] 11000000

Кто-нибудь знает, как решить проблему?

1 Ответ

0 голосов
/ 25 июня 2019

Исключение содержит «java.util.», В котором четко указано, что он генерируется REST-сервисом, написанным на Java.

Я предполагаю, что этот JSON {"сегмент": "WHG_M", "administratorSpatialFilter": {" municipalityCodes ": [11000000]}}

преобразуется вашими методами R-Client в

{
  "segment" : "WHG_M",
  "administrativeSpatialFilter" : {
    "municipalityCodes" : 11000000
  }
}

, который больше не является списком и нарушает JSON-Parser всервер.

Вы должны включить свой JSON-Encoder, чтобы сохранить структуру списка JSON, даже если он имеет только один элемент.

...