如何在扑扑中JSON化

Meh*_*loo 4 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();
Run Code Online (Sandbox Code Playgroud)

尽管nameJson拥有所有的双引号,则nameString

{first: foo, last: bar}

(真正的答案是{"first": "foo", "last": "bar"}

如何保存Dart删除"S?

dom*_*m00 9

当编码对象回到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)