gpt4 book ai didi

json - DART lang读取保存在客户端中的JSON文件,即不使用服务器

转载 作者:行者123 更新时间:2023-12-03 02:48:39 25 4
gpt4 key购买 nike

我正在尝试使用打击代码从JSON文件读取数据:

void makeRequest(Event e){  
var path='json/config.json';
var httpRequest= new HttpRequest();
httpRequest
..open('GET', path)
..onLoadEnd.listen((e)=>requestComplete(httpRequest))
..send('');
}

当应用程序以http:// ... / index.html运行时,此方法效果很好,但是当尝试以file:///.../index.html打开它时出现以下错误
Exception: NetworkError: Failed to load 'file:///D:/DartApp/web/json/config.json'. main.dart:53makeRequest main.dart:53<anonymous closure>

除了httpRequest之外,还有其他方法可以从客户端读取JSON文件!

我了解我有3个选项,其中2个只能使用HttPRequest,它们是:
  • 保存服务器文件,并从服务器读取它=>可以使用HttpRequesit
  • 将文件保存在服务器上,并从客户端读取它=>可以使用HttpRequesit
  • 将文件保存在客户端上,并从客户端本身读取文件=>不能使用HTTPRequest

  • 我正在寻找第三个选项的方法,就像使用webview制作离线Android应用程序或制作离线Chrome打包的应用程序一样,即我根本不想使用服务器。谢谢

    谢谢

    最佳答案

    如果您只需要json文件中的数据,则可以将该数据包括在.dart文件中(例如,作为Map变量/常量)。

    Map config = {
    "displayName": "My Display Name",
    "anotherProperty": 42,
    "complexProperty": {
    "value_1": "actual value",
    "value_2": "another value"
    }
    };

    如果您需要实际的json,则可以放入 String。就像是:
    const configJson = '''
    { "displayName": "My Display Name",
    "anotherProperty": 42,
    "complexProperty": {
    "value_1": "actual value",
    "value_2": "another value"
    }
    }
    ''';

    json数据可以位于单独的 .dart文件中,该文件可以作为同一库的一部分(通过 part of ...)被包含,也可以被导入( import 'package:mypackage/json.dart';)。

    如果您正在寻找可以更改的内容并且更改得以保留,那么您将需要使用某种离线存储,如果您在浏览器中运行,则可以是网络存储。您可以使用上述方法来定义初始配置数据,将其存储在Web存储中,然后从那里读取和编辑它。

    [下面的先前答案,在原始问题被编辑之前。]

    抱歉,阅读“客户端”,认为是“服务器端”。我的错。

    如果“客户端”是指“在浏览器中运行”,并且您试图访问服务器上的json文件,则没有,除了http请求之外,没有其他方法。实际上,这是读取服务器上任何文件的唯一方法,而不仅仅是json文件。 (好吧,我想您可以打开一个WebSocket并传输内容,但这似乎并不是您要寻找的解决方案。)

    [下面的旧解决方案,在指出我的错误(服务器与客户端)之前。]

    尝试:
    // THIS DOESN'T WORK IN A BROWSER ENVIRONMENT (aka client side)
    import 'dart:io';
    import 'dart:convert';


    // ...

    new File('json/config.json')
    .readAsString()
    .then((fileContents) => json.decode(fileContents))
    .then((jsonData) {
    // do whatever you want with the data
    });

    关于json - DART lang读取保存在客户端中的JSON文件,即不使用服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25652672/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com