Dart中格式化JSON的类结构

mai*_*mic 4 json dart

我在Dart中有一些类,我想获取它们的格式化JSON表示形式。

例如,我有以下这些类:

class A {
  String a1;
  num a2;
  List<B> bs;
}

class B {
  String b1;
  num b2;
}
Run Code Online (Sandbox Code Playgroud)

A对象的格式化JSON应该如下所示:

{
  "a1": "value",
  "a2": 42,
  "bs": [
    {
      "b1": "any value",
      "b2": 13
    },
    {
      "b1": "another value",
      "b2": 0
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我查看了pub存储库中的一些软件包,但找不到适合我需要的软件包。也许我错过了正确的选择。

Gün*_*uer 5

如果这些分类进行了序列化和反序列化,但只是没有正确格式化JSON,则可以使用JSON并使用该dart:convert包进行解码/编码,并传递一个缩进字符串。

参见https://api.dartlang.org/apidocs/channels/stable/dartdoc-viewer/dart-convert.JsonEncoder#id_JsonEncoder-withIndent

import 'dart:convert' show JSON, JsonEncoder;

...

String json = jsonFromSerializationLib();

print(new JsonEncoder.withIndent('  ').convert(JSON.decode(j)));
Run Code Online (Sandbox Code Playgroud)