Я новичок в JSON обработке с модернизацией, но я столкнулся с проблемой. Мы создаем прототип интеллектуального помощника для чата с Dialogflow.
Мой Android Клиент отправляет запрос POST в Google Dialogflow, который вызывает сторонние API и отправляет ответ обратно.
Однако этот ответ зависит от типа намерения, обнаруженного Dialogflow. Это может быть почти все, от музыки c до информации о погоде и т.д. c. Таким образом, параметры (для визуализации) будут совершенно другими, и я заранее не знаю тип ответа.
Я предварительно обработал ответ из Dialogflow в своей собственной облачной функции и отправил обратно, содержащий только необходимые поля для клиента.
Например:
«Какая сегодня погода в Брюсселе?»
Ответ:
{
"sessionId": "123456789",
"keepAlive": true,
"intentId": 100,
"intentName": "Weer",
"text": "Het weer in Hanoi is helder met een temperatuur van 23.2 graden.",
"Parameters": {
"text": {
"stringValue": "helder",
"kind": "stringValue"
},
"city": {
"stringValue": "Hanoi",
"kind": "stringValue"
},
"temp": {
"numberValue": 23.2,
"kind": "numberValue"
},
"intentId": {
"numberValue": 100,
"kind": "numberValue"
}
}
}
Вы видите Параметры ответа зависят от типа намерения (id). может быть много или ноль параметров в зависимости от цели.
Как я могу сделать Pojo для каждого типа ответа, а не только для погоды?
Или я могу сделать случай переключения на основе intentId или что-то?