我正在尝试从URL加载json文件并在Dart中解析它.因此,当我谷歌搜索时,我尝试了一些链接中建议的以下代码:
HttpRequest.getString("hellknight2.js").then((response)
{
var model = new JSON.parse(response);
});
Run Code Online (Sandbox Code Playgroud)
但是,它似乎不再适用于Dart SDK版本0.4.3.5_r20602.在Dart中将Json文件映射到对象的当前最佳方法是什么?
Ale*_*uin 21
只需使用JSON的的dart:convert包.这是一个例子:
import 'dart:convert';
main() {
final myJsonAsString = '{"a": 1, "b": "c"}';
final decoded = json.decode(myJsonAsString);
....
}
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅解析JSON.
小智 7
这是我的解决方案:) 首先,您需要导入convert包:
import 'dart:convert';
var res = json.decode(response.body);
Run Code Online (Sandbox Code Playgroud)
然后您可以通过键获取值,如下所示:
print(res["message"]);
Run Code Online (Sandbox Code Playgroud)
就我而言
JSON.decode
没用。
相反,我不得不使用:
import 'dart:convert' as JSON;
final json=JSON.jsonDecode(myJsonAsString);
Run Code Online (Sandbox Code Playgroud)
小智 4
这取决于很多事情。
你得到的json文本是数组还是映射?
您可以尝试:
Map model = new parse(response);
Run Code Online (Sandbox Code Playgroud)
或者
List model = new parse(response);
Run Code Online (Sandbox Code Playgroud)
但你需要将Chris Buckett 的 JSONObject导入到你的包中
import "package:json_object/json_object.dart";
Run Code Online (Sandbox Code Playgroud)
您可以从 pubspec 添加此依赖项来安装它
json_object
Run Code Online (Sandbox Code Playgroud)