当前位置: 首页 > 知识库问答 >
问题:

Dart:将Map转换为引用了所有元素的JSON

微生雨泽
2023-03-14

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

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

{firstName: piet, lastName: venter}

Jackson不喜欢这种格式的数据,它返回状态400和客户端发送的请求语法不正确。

如果我在所有字段周围加上引号,杰克逊接受数据,我会得到回复。

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

在dart中,我构建了一个地图

现在,当我调用data时。toString(),我得到了未加引号的JSON,我猜它是无效的JSON。

如果我导入'dart:转换'显示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吗?


共有2个答案

满昊然
2023-03-14

简单方法

import 'dart:convert';
Map<String, dynamic> jsonData = {"name":"vishwajit"};
print(JsonEncoder().convert(jsonData));
郭逸清
2023-03-14
匿名用户

import 'dart:convert';
...
json.encode(data); // JSON.encode(data) in Dart 1.x

总是导致我引用JSON。< br >您不需要调用< code>toString()

 类似资料:
  • 问题内容: 我想将字符串列表转换为大写。 这是我执行此操作的代码: 有没有更简单/更好的方法来做到这一点? 问题答案: 您实际上并没有改变列表;您已经创建了一个新列表。 要通过一个小的方法调用转换列表,请使用:

  • 问题内容: 我有一些要转换成的属性 我可以从json.org或使用什么吗? 问题答案: 使用来自http://json.org/的 Jackson(http://jackson.codehaus.org/)

  • 问题内容: 像这样转换JSON代码的最佳方法是什么: 在Java Map中,其中一个键为(field1,field2),而这些字段的值为(value1,value2)。 有任何想法吗?我应该使用Json-lib吗?或者,如果我编写自己的解析器会更好? 问题答案: 我希望您在开玩笑编写自己的解析器。:-) 对于这种简单的映射,http://json.org(java部分)中的大多数工具都可以使用。对

  • 本文向大家介绍Swift使用map(_ :)转换数组的元素,包括了Swift使用map(_ :)转换数组的元素的使用技巧和注意事项,需要的朋友参考一下 示例 如Array符合SequenceType,我们可以使用map(_:)转化的阵列A到阵列B使用类型的封闭(A) throws -> B。 例如,我们可以使用它将Ints数组转换为s数组,String如下所示: map(_:)将遍历数组,将给定的

  • 我在一个类中有以下代码,它扩展了Primefaces的 在上面的过滤器是类型

  • 我有一个,并希望该流的每个元素都进行一些计算并将它们返回为,其中键是int值,值是该计算的结果。我写了以下一段代码: 其中,计算第m个(整数a)。我发现下一个编译器错误 我做错了什么?