写入本地json文件dart FLATTER
我正在创建一个允许用户保存小数据的应用程序。我的资产文件夹中有一个json文件,我想创建一个可以向其中写入更多json数据的应用程序。路径:assets/vault.json写入本地json文件dart FLATTER,json,dart,flutter,Json,Dart,Flutter,我正在创建一个允许用户保存小数据的应用程序。我的资产文件夹中有一个json文件,我想创建一个可以向其中写入更多json数据的应用程序。路径:assets/vault.json [ { "name":"Ash", "age":"22", "hobby" : "golf" }, { "name":"philip", "age":"17", "hobby" : "fishing" }, { "name":"charles",
[
{
"name":"Ash",
"age":"22",
"hobby" : "golf"
},
{
"name":"philip",
"age":"17",
"hobby" : "fishing"
},
{
"name":"charles",
"age":"32",
"hobby" : "drawing"
}
]
vault.json
[
{
"name":"Ash",
"age":"22",
"hobby" : "golf"
},
{
"name":"philip",
"age":"17",
"hobby" : "fishing"
},
{
"name":"charles",
"age":"32",
"hobby" : "drawing"
}
]
但是,我一直在向json文件添加更多列表
在main.dart中,我为输入创建了3个文本字段,并在按下按钮时触发WriteFile(arg1、arg2、arg3)
以下是我尝试过的:
void writeToFile(String hobbyy, String agee, String namee) {
print("Writing to file!");
Map<String, dynamic> content = new Map();
content1 = {name: namee};
content2 = {age: agee};
content3 = {hobby: hobbyy};
content.addAll(content1);
content.addAll(content2);
content.addAll(content3);
print(content); //working fine
}
Future<String> _loadAVaultAsset() async {
return await rootBundle.loadString('assets/vault.json');
}
Future loadVault() async {
String jsonString = await _loadAVaultAsset();
final jsonResponse = json.decode(jsonString);
var add = jsonResponse.toString();
add = add.replaceFirst(new RegExp(r'}]'), "},"+content.toString()+"]");
print(add); //shows the full json string that I want.
//How to add/replace (add) into the json file?
}
void writeToFile(字符串hobbyy、字符串agee、字符串namee){
打印(“写入文件!”);
地图内容=新地图();
content1={name:namee};
content2={age:agee};
content3={hobby:hobbyy};
content.addAll(content1);
content.addAll(content2);
content.addAll(content3);
打印(内容);//工作正常
}
Future\u loadAVaultAsset()异步{
return wait-rootBundle.loadString('assets/vault.json');
}
Future loadVault()异步{
字符串jsonString=await_loadAVaultAsset();
最终jsonResponse=json.decode(jsonString);
var add=jsonResponse.toString();
add=add.replaceFirst(newregexp(r'}]'),“},”+content.toString()+“]”;
打印(添加)//显示我想要的完整json字符串。
//如何在json文件中添加/替换(add)?
}
虽然我得到了我想要的json字符串,但我无法在json文件中反映它
这是我的vault_model.dart(如果有任何用途):
class用户列表{
最终用户名单;
用户列表({
这个用户,
});
factory UsersList.fromJson(列表parsedJson){
List entireList=新列表();
entireList=parsedJson.map((i)=>Users.fromJson(i)).toList();
返回用户列表(
用户:entireList,
);
}
}
类用户{
最后的字符串名;
最终管柱年龄;
最终爱好弦乐;
使用者({
这个名字,
这个年龄,
这是我的爱好
});
factory Users.fromJson(映射json){
返回新用户(
名称:json['name'],
年龄:json['age'],
hobby:json['hobby'],
);
}
}
请教我如何在assets/vault.json路径中将旧json字符串替换为新字符串(add)。您可以将其存储在应用程序的文件系统中,而不是存储在
根束中。请参阅在运行时,您似乎无法写入资产中的文件(请参阅此以获取参考)。这描述了如何使用path_provider查找本地路径和读/写本地文件