簡體   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