2013-04-07 65 views
4

我试图从URL中加载一个json文件并在Dart中解析它。所以,我曾尝试下面的代码从一些链接建议,当我谷歌它:在Dart中解析JSON的最佳方法

HttpRequest.getString("hellknight2.js").then((response) 
    { 
    var model = new JSON.parse(response); 
    }); 

然而,这似乎不是达特SDK版本0.4.3.5_r20602工作了。在Dart中获取映射到对象的Json文件的最佳方式是什么?

+0

如果您将导入更改为'导入'dart:json'作为JSON',那么它应该可以工作。 – 2013-04-08 09:48:56

回答

2

这取决于很多事情。

你得到的json文本是数组还是地图?

你可以尝试使用:

Map model = new parse(response); 

或者

List model = new parse(response); 

,但你需要导入JSONObject by Chris Buckett到您的包

import "package:json_object/json_object.dart"; 

您可以从pubspec加入这个依赖

安装
json_object 
8

只需使用dart:convert packageJSON即可。以下是一个示例:

import 'dart:convert' as JSON; 

main() { 
    final myJsonAsString = '{"a": 1, "b": "c"}'; 
    final json = JSON.decode(myJsonAsString); 
    .... 
} 

有关更多详细信息,请参见Parsing JSON

+1

我喜欢用小写的方式导入json,它感觉与Dart风格更加一致。即导入'dart:json'为json – 2013-04-07 22:21:25

+1

当然,'JSON.parse'最初是一个已被删除的'JSON'对象的静态函数。在迁移旧代码时,由于只有更改的导入语句,所以使用大写字母更容易。 – 2013-04-08 06:35:14

+0

截至2014年3月 - 导入'dart:convert'为JSON; – DataMania 2014-03-04 23:53:30