如何在Dart中处理JSON

13

我想知道Dart如何处理JSON?更具体地说:

  1. 我能否访问JSON对象中的项目,何时以及如何访问?
  2. 我能否将Dart的数据结构(如Set和Maps)转换为JSON?
  3. 我能否仅通过调用JSON.parse来创建新的JSON?
  4. 如何向JSON添加新项目?
3个回答

16

你可能会觉得我写的这篇文章有趣: http://www.grobmeier.de/dart-creating-a-dynamic-list-with-dart-php-and-json-20112011.html

你需要使用JSON软件包(在pubspec.yaml中添加json):

import 'package:json/json.dart';

以下是相关规范: https://api.dartlang.org/docs/channels/stable/latest/json.html

回答您的问题:

  1. 您可以使用:List result = JSON.parse( jsonData );
  2. 通过stringify,您可以将Map转换为JSON。
  3. 很抱歉,我不确定这个问题。您可以尝试像这样使用:JSON.parse('{key:"value"}'));
  4. 您可能需要使用parse创建一个Map,然后添加您的项目,最后调用stringify。

5
使用最近版本的 Dart(例如 v0.7.x),应该使用 dart:convert 库。它提供了 JSON.decode() 和 JSON.encode() 方法(性能更好)。请参阅:http://api.dartlang.org/docs/releases/latest/dart_convert.html - CedX

8
你可以使用dart:convert库提供的json属性。
import 'dart:convert' show json;

main() {
  var encoded = json.encode([1, 2, { "a": null }]);
  var decoded = json.decode('["foo", { "bar": 499 }]');
}

7

就像基督徒一样,在我的dartwatch博客上也有一篇类似的文章,可能会对你有用。


1
啊,通常我会在这篇文章中添加一个引用。谢谢你提醒我。 - Christian
2
也许这是一个更新的链接吗?http://www.dartlang.org/articles/json-web-service/ - Eduardo Copat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接