![](/img/trans.png)
[英]how to get a list in a json file with complex data in flutter dart
[英]How to extract JSON child data in dart / flutter
我想提取queryResult的子值。 “你好。我是聊天机器人。那我们就开始吧?” 使用flutter从JSON中获取
最终响应Json = json.decode(response.body);
print(“ DATA \\ n $ {responseJson ['queryResult']}”);;
JSON数据===>
{
"responseId":"123456789",
"queryResult":{
"queryText":"Hello",
"action":"input.welcome",
"parameters":{
},
"allRequiredParamsPresent":true,
"fulfillmentText":"Greetings! How can I assist?",
"fulfillmentMessages":[
{
"text":{
"text":[
"Hello there. I am chat bot So shall we get started?"
]
}
},
{
"quickReplies":{
"quickReplies":[
"Yes",
"No"
]
}
}
],
"outputContexts":[
{
"name":"xyz",
"lifespanCount":5
}
],
"intent":{
"name":"xyz",
"displayName":"Default Welcome Intent"
},
"intentDetectionConfidence":1,
"diagnosticInfo":{
"webhook_latency_ms":5
},
"languageCode":"en"
},
"webhookStatus":{
"message":"Webhook execution successful"
}
}
我无法使用读取queryResult的子数据
final responseJson = json.decode(response.body);
print("DATA \n ${responseJson['queryResult']}");
如果您想获得该特定行,则可以用这种方式获得它,但是对于更多用法,明智的做法是像下面这样序列化json: https : //flutter.dev/docs/development/data-and-backend/ JSON
print("DATA \n ${responseJson['queryResult']['fulfillmentMessages'][0]['text']['text'][0]}");
为了更轻松地理解路径:
print("DATA \n ${
responseJson['queryResult']
['fulfillmentMessages'][0]
['text']
['text'][0]
}"
);
像您一样的完整代码:
import 'dart:convert';
final responseBody = '{"responseId":"123456789","queryResult":{"queryText":"Hello","action":"input.welcome","parameters":{},"allRequiredParamsPresent":true,"fulfillmentText":"Greetings! How can I assist?","fulfillmentMessages":[{"text":{"text":["Hello there. I am chat bot So shall we get started?"]}},{"quickReplies":{"quickReplies":["Yes","No"]}}],"outputContexts":[{"name":"xyz","lifespanCount":5}],"intent":{"name":"xyz","displayName":"Default Welcome Intent"},"intentDetectionConfidence":1,"diagnosticInfo":{"webhook_latency_ms":5},"languageCode":"en"},"webhookStatus":{"message":"Webhook execution successful"}}';
void main() {
final Map<String, dynamic> responseJson = json.decode(responseBody);
print("DATA \n ${
responseJson['queryResult']
['fulfillmentMessages'][0]
['text']
['text'][0]
}"
);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.