Ошибка синтаксического анализа "параметров" 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