gpt4 book ai didi

java - Spring MVC : JSON to Pojo conversion throwing HTTP 415 Error

转载 作者:行者123 更新时间:2023-12-01 05:37:45 27 4
gpt4 key购买 nike

我正在 jQuery 中构建以下 JSON 并通过 ajax 发送到 Controller

var jsonResponse = [];

$(columns).each(function() {
if(!isEmpty($(this))) {
var lang = $(this).find(".language").val();
var item = {
"label": label,
"language": $(this).find(".language").val(),
"value": $(this).find(".value").val()
};
jsonResponse.push(item);
}
});

由于它是单个项目的数组,因此我需要将其映射到 Controller 中的 ArrayList。

我的模型对象是这样的:FormModel - 映射到 item JSON 元素

class FormModel {
String label;
String language;
String value;
// getters & setters
}

FormModelWrapper - 映射到项目数组

    class FormModelWrapper {
private List<FormModel> formModel;
// getters & Setters
}

最后是 Controller :

@RequestMapping(value = View Name, method = RequestMethod.POST)
public String performTask( @RequestBody FormModelWrapper wrapper) {

...
}

我已正确配置 Jackson。我实际上已经通过发送 JSON item 元素并在 FormModel 中接受它来验证它。当我使用 json 元素数组时出现 415 错误。

如有任何帮助,我们将不胜感激。

最佳答案

我到处改变了很多东西,所以我不确定最初是什么导致了错误。这是我的有效解决方案:

jQuery:

var jsonResponse = [];

$(columns).each(function() {
if(!isEmpty($(this))) {
var lang = $(this).find(".language").val();
var item = {
"label": label,
"language": $(this).find(".language").val(),
"value": $(this).find(".value").val()
};
jsonResponse.push(item);
}
});

$.ajax({
url: "actual_url",
type: "POST",
dataType: 'json',
contentType:'application/json',
data: JSON.stringify(jsonResponse),
success: function(result) {
alert(" Call Succeeded");
},
error: function(jqXHR, ajaxOptions, thrownError) {
alert("Call Failed, " + thrownError);
}
});

接下来,我们有映射到 jQuery 中的 item 元素的表单模型

class FormModel {
String label;
String language;
String value;
// getters & setters
}

这是使用 FormModel 的 Controller

@RequestMapping(value = viewName, method = RequestMethod.POST)
public String doTask( @RequestBody List<FormModel> data) {
//your code here
}

我正在使用Jackson to do the JSON to POJO mapping

在我的 spring-context.xml 中,我有 Jackson View Resolver as default View for the View Resolver

<property name="defaultViews">
<list>
<bean
class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />
</list>
</property>

最后是 Jackson 配置,这也在 servlet-context.xml

<bean id="jacksonMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"> </bean>
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="jacksonMessageConverter"/>
</list>
</property>
</bean>

这段代码至少对我来说是有效的。希望对某人有帮助。

关于java - Spring MVC : JSON to Pojo conversion throwing HTTP 415 Error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32827075/

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