【问题标题】:Parsing json into java objects with other object attribue in spring-mvc在spring-mvc中将json解析为具有其他对象属性的java对象
【发布时间】:2011-07-19 20:29:56
【问题描述】:

我有一个元素类型的对象,它有一个主题类型的属性。当我创建一个新元素时由视图中的主题选择表示,主键是选择中项目的值,当我使用 json 发送时,spring 尝试创建一个对象元素,下一个错误是 show

/element: org.codehaus.jackson.map.JsonMappingException: 无法构造 com.example.Theme 的实例,问题:找不到合适的创建者方法 在 [来源:org.mortbay.jetty.HttpParser$Input@dd0099;行:1,列:31]

这是我在 Spring MVC 中的代码

public class Element {

private String name;

private String type;

private Theme theme;

private String description;

     // Get - Set
}

主题类

public class Theme {

private String name;

private String description;

    // Get - Set
 }

控制器中的方法

@RequestMapping(method=RequestMethod.POST)
public @ResponseBody String create(@RequestBody Element element){
    elementManager.saveElement(element);
    return "exito";
}

JavaScript 是这样的

$("#element").submit(function() {
    var element = $(this).serializeObject();
    $.postJSON("element", element, function(data) {
    });
return false;   
});

我希望有人可以帮助我。

【问题讨论】:

  • 你的 Theme 类是什么样的?
  • 是简单的 POJO ,已经编辑过帖子
  • 那么实际传入的 JSON 呢?那看起来像什么?
  • 这是发送到服务器并接收 spring 的 json ,属性 theme 是对象 theme {"name":"rooms","type":"Doc"," theme":"aglub19hcHBfaWRyCwsSBVRoZW1lGAkM","description":"它们真的很大"}

标签: javascript json spring spring-mvc


【解决方案1】:

根据您向服务器发送的包含 JSON 的评论,我会说问题在于 JSON 本身。

您的服务器需要一个类似于以下内容的值:

{"name":"rooms","type":"Doc","theme":{"name":"themeName", "description":"themeDescription"},"descrip‌​tion":"They are realy big"}

您应该从其存储位置获取对象主题,并创建正确的 JSON。如果在客户端查找Theme,则需要将元素更改为具有String 主题属性,然后在客户端进行查找。

【讨论】:

    猜你喜欢
    • 2011-04-24
    • 1970-01-01
    • 1970-01-01
    • 2015-01-20
    • 2014-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多