繁体   English   中英

如何在Dart / Flutter中提取JSON子数据

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM