Dart:将所有带引号的元素转换为JSON

我将Dart中的表单序列化为JSON,然后使用Jackson将其反序列化到JSON,然后将其发布到Spring MVC后端。

在dart中,如果我打印出JSON,则会得到:

{firstName: piet, lastName: venter}

Jackson不喜欢这种格式的数据,它返回状态400,并且 The request sent by the client was

syntactically incorrect.

如果我在所有字段周围都加引号,则Jackson会接受数据,并且会得到答复。

{"firstName": "piet", "lastName": "venter"}

在dart中,我在Map<String, String> data =

{};所有表单字段中构建了一个then循环,然后执行data.putIfAbsent(input.name, () => input.value);

现在,当我调用时data.toString(),我得到了我认为是无效JSON的未引用的JSON。

如果我import 'dart:convert' show

JSON;尝试JSON.encode(data).toString();使用相同的未引用JSON。

手动附加双引号似乎有效:

data.putIfAbsent("\"" + input.name + "\"", () => "\"" + input.value + "\"");

在Java方面,没有火箭科学:

@Controller

@RequestMapping("/seller")

@JsonIgnoreProperties(ignoreUnknown = true)

public class SellerController {

@ResponseBody

@RequestMapping(value = "/create", method = RequestMethod.POST, headers = {"Content-Type=application/json"})

public Seller createSeller(@RequestBody Seller sellerRequest){

所以我的问题是,在Dart中,Jackson期望的构建加引号的JSON(除了手动转义加引号和手动添加引号之外)的方法不是那么简单吗?可以将Jackson配置为允许使用不带引号的JSON吗?

回答:

import 'dart:convert';

...

json.encode(data); // JSON.encode(data) in Dart 1.x

总是导致我引用JSON。

你不需要打电话toString()

以上是 Dart:将所有带引号的元素转换为JSON 的全部内容, 来源链接: utcz.com/qa/409325.html

回到顶部