java - 使用 Ajax 发布 JSON 对象

标签 java ajax json spring jackson

我想知道是否有人可以回答我的问题,因为我不太明白为什么当我手动将一个对象传递给 spring Controller 时需要从请求输入流中读取 json 对象。

通常我使用 json-rpc 框架,它会为我处理所有事情,所以直到现在我实际上还不需要手动执行此操作。一切正常,但我不明白的是为什么请求中没有任何内容,就像您发布表单时一样,而我必须使用此代码将我的对象映射到 jackson :

BufferedInputStream bis = new BufferedInputStream(request.getInputStream());
ChartParameters chartParameters = mapper.readValue(bis, ChartParameters.class);

我只是想了解为什么我需要读取输入流并将其传递给 jackson ,而不是能够以字符串形式获取值,而我首先认为我必须这样做。

预先感谢您提供任何有用的答案。

最佳答案

如果您使用的是最新的 Spring 版本,以下内容应该足以让事情顺利进行:

@ResponseBody
public Chart handleChartJsonRPC(@RequestBody ChartParameters chartParameters) throws Exception {
    return jsonService.getBarChart(chartParameters);
}

这(显然)假设您的 jsonService 返回一个 Chart 对象,在将其发送回浏览器之前应将其序列化为 JSON。

确保您有一个 MessageConverter,可以将您的对象序列化为 JSON 或从 JSON 序列化(反序列化),如 @user2054820 所述。

关于java - 使用 Ajax 发布 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17587085/

相关文章:

javascript - 通过 javascript 或 jQuery Cookie 函数

javascript - Reactjs 搜索 json

java - 读取文件时java中的日期和时间转换

java - 如何停止内部重复行<c :forEach>tag of JSTL in JSP page

Java:字节到整数数学求和转换。相同的操作会导致允许和不允许的操作

json - PostgreSQL 9.5 : Display json data into table

javascript - 使用ajax/javascript显示多个json数组

java - 在java中,如何将一个对象写入文件,然后从文件中读取它并将其转换回HDFS中的原始对象?

javascript - jquery $.post 解释

php - Jquery .ajax 方法 ="post"但 $_POST 为空