Ошибка синтаксического анализа "параметров" JSON Watson Visual Recognition

Я получаю приведенную ниже ошибку при вызове Watson Visual Recognition API через Java. Любая помощь будет высоко оценена.

       VisualRecognition service = new VisualRecognition(VisualRecognition.VERSION_DATE_2016_05_20);
       service.setApiKey("api_key");

       InputStream imagesStream = new FileInputStream("C:\\fruitbowl.jpg");
       ClassifyOptions classifyOptions =
               new ClassifyOptions.Builder().imagesFile(imagesStream).imagesFilename("fruitbowl.jpg")
                       .parameters("{\"classifier_ids\": [\"fruits_1462128776\", + \"SatelliteModel_6242312846\"],\"threshold\": 0.6}")
                       .build();
       ClassifiedImages result = service.classify(classifyOptions).execute();
       System.out.println(result);

Трассировки стека:

  SEVERE: POST https://gateway-a.watsonplatform.net/visual-recognition  /api/v3/classify?version=2016-05-20&api_key=0b5b96d2428f020c207a9388f2bb1ee840e57c9c, status: 400, error: {
"error": {
    "code": 400,
    "error_id": "input_error",
    "description": "Error parsing 'parameters' JSON. Ensure threshold is a float; owner and classifier-ids are string arrays; url is a string."
}}

2 ответа

Я думаю, что проблема заключается в + в середине строки ваших параметров. Я думаю, что это должно быть:

.parameters("{\"classifier_ids\": [\"fruits_1462128776\", \"SatelliteModel_6242312846\"],\"threshold\": 0.6}")
                   .build();

Сообщение об ошибке относится к classifier-ids и у тебя есть classifier_ids, так что это может быть до простой опечатки. Хотя документация также имеет classifier_ids в примере - https://www.ibm.com/watson/developercloud/visual-recognition/api/v3/?java

Другие вопросы по тегам