当前位置: 首页 > 知识库问答 >
问题:

json.decode在json-dart中的嵌套双引号上抛出FormatException

柴宝
2023-03-14

下面的html" target="_blank">代码片段在Flutter json解码中抛出格式异常,有什么建议吗?

import 'dart:async' show Future;
import 'dart:convert';

Future<String> readBooks() async {
  String jsonString = '{"description":"As part of the "You Don’t Know JS" series","quantity":55}';

  Map<String, dynamic> books = json.decode(jsonString);
  return jsonString;
}

格式异常:

2018-10-23 20:40:30.680 181 15-18142/addon.com.bookshop e/flutter:[错误:flutter/shell/common/shell.cc(181)]Dart错误:未处理的异常:FormatException:意外字符(位于字符26){“Name”:“作为”You don't Know JS“系列的一部分”,“Age”:55}^

#0      _ChunkedJsonParser.fail (dart:convert/runtime/libconvert_patch.dart:1358:5)
#1      _ChunkedJsonParser.parse (dart:convert/runtime/libconvert_patch.dart:919:48)
#2      _parseJson (dart:convert/runtime/libconvert_patch.dart:29:10)
#3      JsonDecoder.convert (dart:convert/json.dart:540:36)
#4      JsonCodec.decode (dart:convert/json.dart:167:41)
#5      _MyHomePageState.readBooks (file:///E:/Me/TimePass/flutter/book_shop/lib/main.dart:58:39)
<asynchronous suspension>
#6      _MyHomePageState.build.<anonymous closure> (file:///E:/Me/TimePass/flutter/book_shop/lib/main.dart:48:39)
<asynchronous suspension>
#7      _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:503:14)
#8      _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:558:30)
#9      GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:102:24)
#10     TapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:242:9)
#11     TapGestureRecognizer.handlePrimaryPointer (package:flutter/src/gestures/tap.dart:175:7)
#12     PrimaryPointerGestureRecognizer.handleEvent (package:flutter/src/gestures/recognizer.dart:315:9)
#13     PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:73:12)
#14     PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:101:11)
#15     _WidgetsFlutterBinding&BindingBase&GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:143:19)
#16     _WidgetsFlutterBinding&BindingBase&GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:121:22)
#17     _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:101:7)
#18     _WidgetsFlutterBinding&BindingBase&GestureBinding._flushPointerEventQueue

(包:flutter/src/gestures/binding.dart:64:7)#19_Widgetsflutterbinding&bindingbase&gesturebinding._HandlePointerDataPacket(包:flutter/src/gestures/binding.dart:48:7)#20_invoke1(dart:ui/hooks.dart:142:13)#21_dispatchPointerDataPacket(dart:ui/hooks.dart:99:5)

共有1个答案

韶景曜
2023-03-14

这只是无效的JSON。
内部引号需要转义为\“以使您的JSON有效。

 类似资料:
  • 我目前正在使用一个替换脚本来自动修复单引号和双引号。 但是,我找不到一个解决方案来更改嵌套在另一个双引号内的任何地方的双引号 “在'abc'开头和结尾有一些额外的文本” 目前,我只能自动修复这个类型,如果它在其他引号旁边(例如“abc”)使用一个简单的替换脚本 和

  • 问题内容: 我的代码: 定义是错误的 定义是正确的 我听说在Python中 单 引号和 双 引号可以互换。谁能向我解释一下? 问题答案: JSON语法不是Python语法。JSON的字符串需要双引号。

  • 问题内容: 如何在Python中用反斜杠和双引号替换双引号? 我想得到以下内容: 问题答案: 当您只要求’s’时,它会为您转义\,在打印时,您会看到字符串处于更“原始”状态。所以现在

  • 我使用了这个config允许将嵌套对象解析为json: 它似乎确实起到了作用,因为带有嵌套对象的工作正常。然后我尝试从json创建一个类实例https://pub.dev/packages/json_serializable: 我得到一个例外: 抛出的异常:类型'_InternalLinkedHashMap 这是的值: 红色覆盖的值是字符串。当和为时,没有错误。 我认为这是因为是嵌套的JsonSe

  • 问题内容: 我注意到单引号导致的功能失败: 我正在解析以下内容:从文本文件转换为Python中的列表,并且也想接受。便于自动将其放入列表。 我如何才能接受单引号,或在不破坏输入的情况下自动将双引号替换为单引号?谢谢。 问题答案: 使用适合该工作的工具,您不是在解析JSON,而是在解析Python,因此请改用: JSON文件总是使用字符串双引号,使用UTF-16 进制转义语法,具有与键始终字符串键值

  • 问题内容: 我正在尝试显示双引号,但它显示的是反斜杠之一: 在html中呈现时,显示为。正确的方法是什么? 问题答案: 试试这个: (在引号前只需一个反斜杠())。