gpt4 book ai didi

javascript - Map 未映射

转载 作者:行者123 更新时间:2023-12-02 10:13:34 24 4
gpt4 key购买 nike

前端将此 json 发送到我的 API

{  
"parameters":{
"MAIL_BODY":"saffsa",
"MAIL_FROM":"sffasafs",
"MAIL_RECEIVED_DATE":"asfasf",
"MAIL_SUBJECT":"asfafs",
"MAIL_TO":"ssfafs"
},
"templateID":"9093",
"deliveryChannel":"NONE"
}

Controller :

 @RequestMapping(value = "/previewDocument", method = RequestMethod.POST, produces = "application/pdf")
public byte[] previewDocument(@RequestBody Map<String, String> parameters, @RequestBody String templateID, @RequestBody String deliveryChannel) {
// TODO
}

但是我在我的后端日志中得到了这个

2019-02-22 10:34:55.068 WARN 9976 --- [nio-8083-exec-7] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize instance of java.lang.String out of START_OBJECT token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of java.lang.String out of START_OBJECT token at [Source: (PushbackInputStream); line: 1, column: 15] (through reference chain: java.util.LinkedHashMap["parameters"])]

我不明白这是什么问题。 parameters 似乎是一个 Map 对吧?有人可以解释一下为什么这不起作用吗?

最佳答案

替换Map<String, String>Map<String, Object>并且解析将会成功。内部对象被解析为 Map<String, String> .
您将需要在方法主体中强制转换/询问值的类型,例如

if (parameters.get("parameters") instanceof Map) {
Map<String, String> parametersMap = (Map<String, String>)parameters.get("parameters");
String body = parametersMap.get("MAIL_BODY");
}

关于javascript - Map<String, String> 未映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54825303/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com