如何在Dart中处理JSON

And*_*rle 13 json dart

我想知道Dart如何处理JSON?进一步来说:

  1. 我可以访问JSON对象中的项目以及何时,如何?
  2. 我可以将Darts数据结构(如Set和Maps)转换为JSON吗?
  3. 我可以通过调用JSON.parse来创建新的JSON吗?
  4. 如何将新项添加到JSON中?

Chr*_*ian 16

您可能会发现我的这篇文章很有趣:http: //www.grobmeier.de/dart-creating-a-dynamic-list-with-dart-php-and-json-20112011.html

您需要使用JSON包(将json添加到pubspec.yaml):

import 'package:json/json.dart';
Run Code Online (Sandbox Code Playgroud)

以下是相应的规范: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从JSON中创建Map,然后添加项目,然后调用stringify

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

Chr*_*ett 7

像Christian一样,我的dartwatch博客上也有类似的帖子,可能会有用.

  • 也许这是更新的链接?http://www.dartlang.org/articles/json-web-service/ (2认同)

Ale*_*uin 7

您可以使用dart:convert库提供的JSON属性.

import 'dart:convert' show JSON;

main() {
  var encoded = JSON.encode([1, 2, { "a": null }]);
  var decoded = JSON.decode('["foo", { "bar": 499 }]');
}
Run Code Online (Sandbox Code Playgroud)