如何在扑扑中JSON化

时间:2019-02-01 21:56:12

标签: json dart flutter

在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来删除"

1 个答案:

答案 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"}
}