Dart json.encode 返回 json 字符串,其中键值不带引号

2024-04-30

我正在尝试将字典转换为 json 字符串。但是我没有得到任何字符串的引号。我正在使用 dart 2 。这是我所拥有的

  var resBody = {};
  resBody["email"] = "[email protected] /cdn-cgi/l/email-protection";
  resBody["password"] = "admin123";
  var user = {};
  user["user"] = resBody;
  String str = json.encode(user);

输出是:

{user: {email: [email protected] /cdn-cgi/l/email-protection, password: admin123}}

我希望它像一个实际的 json 对象

{"user": {"email": "[email protected] /cdn-cgi/l/email-protection", "password: admin123"}}

我怎样才能告诉 dart 在它周围加上引号? 我在看this https://stackoverflow.com/questions/29294019/dart-convert-map-to-json-with-all-elements-quoted线程并且正在做对用户有用的事情 难道我做错了什么 ?


这按预期工作

import 'dart:convert';

void main() {
  var resBody = {};
  resBody["email"] = "[email protected] /cdn-cgi/l/email-protection";
  resBody["password"] = "admin123";
  var user = {};
  user["user"] = resBody;
  String str = json.encode(user);
  print(str);
}

prints

{"user":{"email":"employ[email protected] /cdn-cgi/l/email-protection","password":"admin123"}}

DartPad 示例 https://dartpad.dartlang.org/bca589c77b74a3290ab1ef3e246cf384

[or]

import 'dart:convert';

void main() {
  const JsonEncoder encoder = JsonEncoder.withIndent('  ');
  try {
  var resBody = {};
  resBody["email"] = "[email protected] /cdn-cgi/l/email-protection";
  resBody["password"] = "admin123";
  var user = {};
  user["user"] = resBody;
  String str = encoder.convert(user);
  print(str);
  } catch(e) {
    print(e);
  }
}

这会给你美化的输出

{
  "user": {
    "email": "[email protected] /cdn-cgi/l/email-protection",
    "password": "admin123"
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Dart json.encode 返回 json 字符串,其中键值不带引号 的相关文章

随机推荐