在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();
Run Code Online (Sandbox Code Playgroud)
尽管nameJson拥有所有的双引号,则nameString是
{first: foo, last: bar}
(真正的答案是{"first": "foo", "last": "bar"})
如何保存Dart删除"S?
当编码对象回到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"}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1845 次 |
| 最近记录: |