首页 > 解决方案 > FormatException:JSON 中的意外字符

问题描述

我有一个应用程序,它接受 aWidget并将其转换为 aString然后再转换为 a Json

我得到了例外:FormatException: Unexpected character(at character 20)。我希望您可以将 Widget 转换为Json.

import 'package:flutter/material.dart';
import 'dart:convert';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  static String _widget = Text('D').toString();
  static String rawJson = """{"widget":"L($_widget..replaceAll(" ", ' '))L"}""";
  static Map<String, dynamic> map = jsonDecode(rawJson);
  static String widgete = map['widget'];
  WidgetJson widgetJson = WidgetJson(widget: widgete);

  @override
  Widget build(BuildContext context) {
    print(_widget);
    return Scaffold(
      appBar: AppBar(
        title: Text("Widget Title"),
      ),
      body: Stack(
        children: <Widget>[Text("$widgete")],
      ),
    );
  }
}

class WidgetJson {
  WidgetJson({this.widget});
  String widget;
}

标签: flutter

解决方案


使用地图文字声明地图

Map<String, dynamic> map = { 'widget' : Text('D').toString()};

map['widget']将产生以下输出

文本(“D”)


推荐阅读