На основе примера ответа от Watson Assistant API
{
"intents": [
{
"intent": "hello",
"confidence": 0.9755029201507568
}
],
"entities": [],
"input": {
"text": "Hello"
},
"output": {
"generic": [
{
"response_type": "text",
"text": "Hello! What can I do for you?"
}
],
"text": [
"Hello! What can I do for you?"
],
"nodes_visited": [
"greeting"
],
"log_messages": []
},
"context": {
"conversation_id": "a96ec62f-773c-4e84-8be9-f9dbca9f83d0",
"system": {
"dialog_stack": [
{
"dialog_node": "root"
}
],
"dialog_turn_counter": 1,
"dialog_request_counter": 1,
"_node_output_map": {
"greeting": {
"0": [
0,
0
]
}
},
"branch_exited": true,
"branch_exited_reason": "completed"
}
}
}
Я думаю, что проблема связана с этой строкой кода Android
response.getText().get(0);
После получения ответа вы пытаетесьпрочитайте первый элемент в getText.get (0).Поскольку это может быть массив или объект массивов, вы должны пройти через него, чтобы прочитать каждое значение.
Заменить
final String outputText = response.getText().get(0);
на
String outputText = "";
int length=response.getText().size();
Log.i(TAG, "run: "+length);
if(length>1) {
for (int i = 0; i < length; i++) {
outputText += '\n' + response.getText().get(i).trim();
}
}
else
outputText = response.getText().get(0);