繁体   English   中英

如何在flutter中读取本地json导入?

[英]How to read local json import in flutter?

我在颤振目录中有一个 JSON 文件,而不是在资产中。

json_data.json:-

 {
    "foo" : "bar"
 }

我想在不同的文件上阅读这个 JSON。

喜欢

myfile.dart:-

 import "package:mypackage/json_data.json" as data;
 import 'dart:convert';
 
  var my_data = json.decode(data);

我收到错误消息:-

The name 'data' refers to an import prefix, so it must be followed by '.'.
Try correcting the name to refer to something other than a prefix, or renaming the prefix.

这里有什么问题? 为什么我不能从本地导入中读取 JSON?

您应该考虑在 flutter 中加载资产 您不能简单地导入任意文件。 导入用于源代码/库。

您需要在pubspec.yaml中将此文件声明为资产

flutter:
  assets:
    - json_data.json

然后在您的代码中,您可以将此资产加载为String

import 'package:flutter/services.dart' show rootBundle;

Future<String> getJson() {
  return rootBundle.loadString('json_data.json');
}

您可以使用现有代码对 JSON 进行解码,但它应该放在某个方法体中。 您调用此getJson函数来检索 JSON 字符串:

var my_data = json.decode(await getJson());

或者,您可以通过将 JSON 文件的内容作为String直接放入代码中来进一步简化此操作,但这可能是不可能的,这取决于您对该 JSON 的预期用途。

const String data = '''
{
  "foo" : "bar"
}
''';
var my_data = json.decode(data);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM