Java 驼峰restlet Json集成问题
我尝试在camel中使用restlet。请求应该是JSON。但不知道如何将JSON转换为java对象。以下是代码示例: 客户请求:Java 驼峰restlet Json集成问题,java,json,restlet,Java,Json,Restlet,我尝试在camel中使用restlet。请求应该是JSON。但不知道如何将JSON转换为java对象。以下是代码示例: 客户请求: $.ajax({ url: '${pageContext.request.contextPath}/rs/search?restletMethod=POST', type: "POST", data: $('#searchRequest').serializeArray(), contentType: "application/json;charset=u
$.ajax({
url: '${pageContext.request.contextPath}/rs/search?restletMethod=POST',
type: "POST",
data: $('#searchRequest').serializeArray(),
contentType: "application/json;charset=utf-8",
dataType: "html",
success: function (result)
{
$("#result #queryId").text(result);
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError.Message);
}
});
RouterBuilder:
from("restlet:/search?restletMethod=POST").unmarshal("gson")
.to("bean:restletHandler");
camelcontext.xml
<bean id="gson" class="org.apache.camel.component.gson.GsonDataFormat">
<property name="unmarshalType" value="domain.SearchRequest"/>
</bean>
我得到了以下例外情况:
com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:应为BEGIN_对象,但在第1行第1列为字符串
交换中的主体类型为org.restlet.engine.io.UnclosableInputStream
看起来像:
性别=女性&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&说明请求创建日期所有者状态完成日期计数
正文中的流看起来不像Json,所以gson不知道如何将其转换为对象。
任何帮助都将不胜感激
谢谢,使用JSON.parse(),内容类型必须设置为application/JSON谢谢您的回复!当我将数据传递为:{“demographics.sex”:[“femal”、“male”、“unknown”],“demographics.race”:“indian”、“medicines.includeCodes”:[“2345”、“4567”],“medicings.excludeCodes”:“4567”、“diagnosis.includeCodes”:[“250.00”、“410.90”、“401.9”],“description”:“cxzcxzcxzcxzc”、“gender”:“}时,在“gson”之后创建的对象缺少字符串数组: