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