首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将JSON响应转换为Dart Map<String,int>对象.?

如何将JSON响应转换为Dart Map<String,int>对象.?
EN

Stack Overflow用户
提问于 2020-10-22 06:08:42
回答 1查看 590关注 0票数 2

我从api中获取数据,作为下面的JSON对象来使用数据创建图表。我想在我的颤振应用程序中隐藏这个对Map对象的DIO响应。

我的API响应:

代码语言:javascript
运行
复制
{
    "November 20": 1,
    "October 20": 3,
    "September 20": 1
}

我尝试创建一个map对象:

代码语言:javascript
运行
复制
  Future<bool> fetchChartData() async {
    var response = await CasesApiService().getChartData();
    Map<String, dynamic> data = jsonDecode(response.data);
  }

但它显示了以下错误:

代码语言:javascript
运行
复制
E/flutter ( 4733): [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'String'
E/flutter ( 4733): #0      CasesProvider.fetchChartData
package:bdopsApp/providers/casesProvider.dart:86
E/flutter ( 4733): <asynchronous suspension>
E/flutter ( 4733): #1      _CasesChartViewState.build.<anonymous closure>
package:bdopsApp/…/casesApp/casesChart.dart:31
E/flutter ( 4733): #2      _InkResponseState._handleTap
package:flutter/…/material/ink_well.dart:985
E/flutter ( 4733): #3      _InkResponseState.build.<anonymous closure>
package:flutter/…/material/ink_well.dart:1101
E/flutter ( 4733): #4      GestureRecognizer.invokeCallback
package:flutter/…/gestures/recognizer.dart:183
E/flutter ( 4733): #5      TapGestureRecognizer.handleTapUp
package:flutter/…/gestures/tap.dart:598
E/flutter ( 4733): #6      BaseTapGestureRecognizer._checkUp
package:flutter/…/gestures/tap.dart:287
E/flutter ( 4733): #7      BaseTapGestureRecognizer.handlePrimaryPointer
package:flutter/…/gestures/tap.dart:222
E/flutter ( 4733): #8      PrimaryPointerGestureRecognizer.handleEvent
package:flutter/…/gestures/recognizer.dart:476
E/flutter ( 4733): #9      PointerRouter._dispatch
package:flutter/…/gestures/pointer_router.dart:77
E/flutter ( 4733): #10     PointerRouter._dispatchEventToRoutes.<anonymous closure>
package:flutter/…/gestures/pointer_router.dart:122
E/flutter ( 4733): #11     _LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:377:8)
E/flutter ( 4733): #12     PointerRouter._dispatchEventToRoutes
package:flutter/…/gestures/pointer_router.dart:120
E/flutter ( 4733): #13     PointerRouter.route
package:flutter/…/gestures/pointer_router.dart:106
E/flutter ( 4733): #14     GestureBinding.handleEvent
package:flutter/…/gestures/binding.dart:368
E/flutter ( 4733): #15     GestureBinding.dispatchEvent
package:flutter/…/gestures/binding.dart:348
E/flutter ( 4733): #16     RendererBinding.dispatchEvent
package:flutter/…/rendering/binding.dart:268
E/flutter ( 4733): #17     GestureBinding._handlePointerEventImmediately
package:flutter/…/gestures/binding.dart:303
E/flutter ( 4733): #18     GestureBinding.handlePointerEvent
package:flutter/…/gestures/binding.dart:267
E/flutter ( 4733): #19     GestureBinding._flushPointerEventQueue
package:flutter/…/gestures/binding.dart:225
E/flutter ( 4733): #20     GestureBinding._handlePointerDataPacket
package:flutter/…/gestures/binding.dart:208
E/flutter ( 4733): #21     _rootRunUnary (dart:async/zone.dart:1206:13)
E/flutter ( 4733): #22     _CustomZone.runUnary (dart:async/zone.dart:1100:19)
E/flutter ( 4733): #23     _CustomZone.runUnaryGuarded (dart:async/zone.dart:1005:7)
E/flutter ( 4733): #24     _invoke1 (dart:ui/hooks.dart:265:10)
E/flutter ( 4733): #25     _dispatchPointerDataPacket (dart:ui/hooks.dart:174:5)

N.B:,我正在做我的最后一年的项目。因此,我所遵循的过程可能不是实际项目中使用的过程。

EN

回答 1

Stack Overflow用户

发布于 2020-10-22 06:59:13

如果在dartPad中运行以下示例,您将得到要查找的结果:

代码语言:javascript
运行
复制
import 'dart:convert';

void main() {
  
  var jsonString= "{\"November 20\": \"1\",\"October 20\": \"2\",\"September 20\": \"3\"}";
  Map<String, dynamic> data = jsonDecode(jsonString);
  
  print(data);
}

我认为您需要检查从response.data获得的数据。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64476264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档