在flutter(dart)中,很容易反序列化Json
并从中获取令牌,但是当我再次尝试对其进行序列化时,键和值周围的引号会消失。
String myJSON = '{"name":{"first":"foo","last":"bar"}, "age":31, "city":"New York"}';
var json = JSON.jsonDecode(myJSON); //_InternalLinkedHashMap
var nameJson = json['name']; //_InternalLinkedHashMap
String nameString = nameJson.toString();
尽管nameJson
包含所有双引号,但nameString
是
{first: foo, last: bar}
(真实答案是{"first": "foo", "last": "bar"}
)
如何保存Dart来删除"
?
答案 0 :(得分:3)
当编码对象回到JSON,您使用的ToString(),这的确不的转换的目的是有效的JSON。使用jsonEncode可以解决此问题。
import 'dart:convert';
void main() {
String myJSON = '{"name":{"first":"foo","last":"bar"}, "age":31, "city":"New York"}';
var json = jsonDecode(myJSON);
var nameJson = json['name'];
String nameString = jsonEncode(nameJson); // jsonEncode != .toString()
print(nameString); // outputs {"first":"foo","last":"bar"}
}