gpt4 book ai didi

json - Dart 从 base64 转换整个 json 树

转载 作者:IT王子 更新时间:2023-10-29 06:54:21 41 4
gpt4 key购买 nike

我有 json,其中每个值都编码为 base64。我想遍历整棵树并解码每个值。这需要是自动的。代码中不能指定 json 键。它需要自己下降。我该怎么做?

这是我目前的情况

Map<String, dynamic> parseJson(String response) {
var data = json.decode(response);

// Here I need to decode from base64

return data;
}

这是json的样子

{
"app_title":"RnJpU8Okaw==",
"app_color":"I0ZGRUUzMw==",
"app_tabs":[
{
"title":"RW4gdGl0ZWwgw6XDpMO2w4XDhMOW",
"content":"CkxpdGUgaW5uZWjDpWxsLiA8YnIgLz4gCjxiPmhlajwvYj4gCjxoMT50ZXN0PC9oMT4KPGEgaHJlZj0iaHR0cDovL2ZyaXNrb2xhLm51Ij5FbiBsw6RuazwvYT4KPGRpdiBzdHlsZT0iY29sb3I6IGdyZWVuIj5MaXRlIGdyw7ZuIHRleHQga2Fuc2tlPzwvZGl2Pgo8aW1nIHNyYz0iaHR0cDovL2ZyaXNrb2xhLm51L2ltYWdlcy9zb2ZyaV9sb2dvdHlwLnBuZyIgLz4K"
},
{
"title":"RW4gdGl0ZWwgw6XDpMO2w4XDhMOW",
"content":"CkxpdGUgaW5uZWjDpWxsLiA8YnIgLz4gCjxiPmhlajwvYj4gCjxoMT50ZXN0PC9oMT4KPGEgaHJlZj0iaHR0cDovL2ZyaXNrb2xhLm51Ij5FbiBsw6RuazwvYT4KPGRpdiBzdHlsZT0iY29sb3I6IGdyZWVuIj5MaXRlIGdyw7ZuIHRleHQga2Fuc2tlPzwvZGl2Pgo8aW1nIHNyYz0iaHR0cDovL2ZyaXNrb2xhLm51L2ltYWdlcy9zb2ZyaV9sb2dvdHlwLnBuZyIgLz4K"
},
{
"title":"RW4gdGl0ZWwgw6XDpMO2w4XDhMOW",
"content":"CkxpdGUgaW5uZWjDpWxsLiA8YnIgLz4gCjxiPmhlajwvYj4gCjxoMT50ZXN0PC9oMT4KPGEgaHJlZj0iaHR0cDovL2ZyaXNrb2xhLm51Ij5FbiBsw6RuazwvYT4KPGRpdiBzdHlsZT0iY29sb3I6IGdyZWVuIj5MaXRlIGdyw7ZuIHRleHQga2Fuc2tlPzwvZGl2Pgo8aW1nIHNyYz0iaHR0cDovL2ZyaXNrb2xhLm51L2ltYWdlcy9zb2ZyaV9sb2dvdHlwLnBuZyIgLz4K"
}
]
}

谢谢!

最佳答案

这就是你如何做到这一点,使用 Base64Codec ,如果你使用 utf8.decode 你不会丢失编码。

  import 'dart:convert';

Base64Codec base64 = const Base64Codec();
Map<String, dynamic> parseJson(String response) {
final data = json.decode(response);

// Here I need to decode from base64
final dataTitle = data["app_title"];
final dataColor = data["app_color"];


//decode base64
final dataTitle64 = base64.decode(dataTitle);
final dataColor64 = base64.decode(dataColor);


//Strings
String stringTitle = utf8.decode(dataTitle64);
String stringColor = utf8.decode(dataColor64);


//content array
List<Item> list = List();
for (Map<String, dynamic> value in data["app_tabs"]){
final mapTitle = base64.decode(value["title"]);
final mapContent = base64.decode(value["content"]);
String stringTitle = utf8.decode(mapTitle);
String stringContent = utf8.decode(mapContent);
list.add(Item(stringTitle, stringContent));
}

//now you have your list of items

for(Item item in list){
print("ITEM: ${item.title} .. ${item.content}");
}
//return that list if you want


return data;
}

关于json - Dart 从 base64 转换整个 json 树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53682474/

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