当前位置: 首页 > 知识库问答 >
问题:

如何使用Spring MVC从API REST获取对象

叶鸿
2023-03-14

我有一个Spring MVC项目,我配置了jackson库来自动将响应(java对象)转换为json,它在GET请求中工作如下。

    @RequestMapping(method = RequestMethod.GET)
public @ResponseBody Orders createOrder(Model model){

            Orders orders = new Orders();
            //Populate orders.....

    return orders;
}

但是当我试图处理POST请求并从json的请求中获取对象时,我会得到错误“400 Bad request”,因为Spring无法从json创建对象顺序。我放置了与GET方法响应相同的json文件,因此我假设该文件格式良好。

@RequestMapping(method = RequestMethod.POST)
public @ResponseBody ResponseEntity<String> createOrder(@RequestBody Orders orders){

    LOG.info(orders.toString());

    return new ResponseEntity<String>("", HttpStatus.CREATED);
}

如果我将@RequestBody类更改为String(createOrder(@RequestBody String orders)),POST请求将得到良好的处理。

我必须创建一个映射器,将输入json映射到类订单吗?

更新:我已经创建了一个最简单的例子来尝试它,我收到了错误400。例:

域名:首页。JAVA

public class Home {
    private String address = "Calle mármoles";

    public Home(){

    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}

控制器:

@RequestMapping(method = RequestMethod.POST)
public @ResponseBody ResponseEntity<String> createOrder2(@RequestBody Home orders){
    return new ResponseEntity<String>("{}", HttpStatus.CREATED);
}

JSON(POST):

{
  address: "Prueba"
}

[已解决]

我错过了把“”放在参数名称的名称中。

共有1个答案

强志学
2023-03-14

[已解决]

我没有在参数名的名称中添加“”。

此外,类必须有一个默认的空白构造函数,以允许jackson库创建对象。

 类似资料:
  • 对于每道菜,我都有一个输入来指定菜的数量,但是如何将它转换为DishQuantityMap?其中firstInteger-dishId,second-订购的菜肴数量。 我知道我的代码中缺少th:字段,这是因为我不知道如何正确地实现它。

  • 我是Javascript新手,我正试图从包含多个对象的数组中获取id键的值。 通过 for..在循环中,我需要对象的id - 如1,2或3 - 与不同的值进行比较。 我试着这样做: 但是,我这样做了,删除Id值返回未定义。 我想不通为什么返回未定义,我无法解决这个问题。 我希望我能很好地表达自己,对不起我的英语不好。

  • 问题内容: 我有一个JSON对象,其中有一个字段是生日日期: 但是该方法在JSONObject中不存在。 如何在用户对象中设置出生日期? 问题答案: 您可能会喜欢以下内容, 希望对您有所帮助:)

  • 问题内容: 我正在尝试在非Spring代码中获取Spring定义的Hibernate Configuration和SessionFactory对象。以下是我的applicationContext.xml文件中的定义: 码: 如果现在调用getBean(“ sessionFactory”),我将返回一个$ Proxy0对象,该对象似乎是Hibernate SessionFactory对象的代理。但这

  • 问题内容: 我正在与集成的android应用程序上工作。我正在使用fql查询从Facebook获取信息。我的fql方法是 myjson对象具有我想要的所有信息。像这样 问题是如何将该信息存储到不同的阵列中? 请为此修改一些代码。 问题答案: 检查http://www.androidhive.info/2012/01/android-json-parsing- tutorial/

  • 我对这些字段有以下要求: 付款(类型付款)- 令牌(字符串) 类型(字符串) cvv(字符串) 我试图通过访问字段令牌,但我真的不知道如何使其工作。我发现了一些与反射相关的东西,但我真的不知道它是如何工作的。 我已经尝试了类似的东西,但我仍然不知道如何获取这个字符串“令牌”: