gpt4 book ai didi

json - 写入本地 json 文件 dart flutter

转载 作者:IT王子 更新时间:2023-10-29 07:13:41 24 4
gpt4 key购买 nike

我正在创建一个允许用户保存小数据的应用程序。我的 Assets 文件夹中有一个 json 文件,我想创建一个可以向其中写入更多 json 数据的应用程序。路径:assets/vault.json

库.json

[
{
"name":"Ash",
"age":"22",
"hobby" : "golf"
},
{
"name":"philip",
"age":"17",
"hobby" : "fishing"
},
{
"name":"charles",
"age":"32",
"hobby" : "drawing"
}

]

但是我一直坚持向 json 文件添加更多列表。

在我的 main.dart 中,我创建了 3 个用于输入的文本字段和一个用于触发 writeToFile(arg1,arg2,arg3) 的 onPress 按钮。

这是我尝试过的:

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?
}

虽然我得到了我想要的 json 字符串,但我无法在 json 文件中反射(reflect)它。

这是我的 vault_model.dart(如果有任何用处的话):

class UsersList{
final List<Users> user;

UsersList({
this.user,
});

factory UsersList.fromJson(List<dynamic> parsedJson){

List<Users> entireList = new List<Users>();

entireList = parsedJson.map((i)=>Users.fromJson(i)).toList();

return UsersList(
user: entireList,
);
}
}

class Users{
final String name;
final String age;
final String hobby;

Users({
this.name,
this.age,
this.hobby
});

factory Users.fromJson(Map<String, dynamic> json){
return new Users(
name: json['name'],
age: json['age'],
hobby: json['hobby'],
);
}

}

请教我如何在 assets/vault.json 路径中用新字符串替换旧的 json 字符串(添加)。

最佳答案

除了存储在 rootBundle 中,您能否将其存储在应用程序的文件系统中。引用here

关于json - 写入本地 json 文件 dart flutter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51807228/

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