使用json

时间:2017-12-03 18:11:55

标签: java json spring spring-boot controller

我的控制器:

@RequestMapping(value = "/add-item-json", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public @ResponseBody String addItemJson(@ModelAttribute("item") @Valid ItemDTO itemToAdd, BindingResult result,
                                               Model model) {
    //...
}

ItemDTO:

public class ItemDTO {
    @NotNull
    @NotEmpty
    private String url;

    private String title;

    private String description;

    @ItemUsers
    private Set<User> users;
}

Ajax请求:

$.post('/add-item-json', data, function (response) {
                alert("send post request");
            }, 'json');

JSON:

   {
  "url": "www.site.com",
  "title": "title",
  "description": "description",
  "users": [
    {
      "id": "1",
      "user": "aaaa"
    },
    {
      "id": "2",
      "user": "bbbb"
    },
    {
      "id": "3",
      "user": "cccc"
    }
  ]
}

当我尝试使用List属性传递对象时,我收到错误:

  

执行期间出现异常:无效的属性&#39;用户[0] [id]&#39;的   bean class [com.project.project.dto.ItemDTO]:引用的属性   索引属性路径&#39; users [0] [id]&#39;既不是数组也不是数组   列表也不是地图;返回值是[users {id = null,   用户=&#39;空&#39;}]

     

org.springframework.beans.InvalidPropertyException:无效的属性   &#39;用户[0] [ID]&#39; bean类[com.project.project.dto.ItemDTO]:   索引属性路径&#39; users [0] [id]&#39;中引用的属性是   既不是数组也不是List也不是Map;返回值是   [users {id = null,users =&#39; null&#39;}]

当我尝试使用Set属性传递对象时,我收到错误:

  

执行期间出现异常:无效的属性&#39;用户[0] [id]&#39;的   bean class [com.project.project.dto.ItemDTO]:非法获取   物业&#39;用户&#39;抛出异常;嵌套异常是   org.springframework.beans.InvalidPropertyException:无效的属性   &#39;用户[0] [ID]&#39; bean类[com.project.project.dto.ItemDTO]:   无法从使用的大小为0的Set中获取索引为0的元素   属性路径&#39;用户[0] [id]&#39;

     

org.springframework.beans.InvalidPropertyException:无效的属性   &#39;用户[0] [ID]&#39; bean类[com.project.project.dto.ItemDTO]:   非法企图获得财产的用户&#39;抛出异常;嵌套   异常是org.springframework.beans.InvalidPropertyException:   无效的属性&#39;用户[0] [id]&#39;豆类   [com.project.project.dto.ItemDTO]:无法获取索引为0的元素   从大小为0的集合,使用属性路径&#39; users [0] [id]&#39;

访问

如何将具有Set / List属性的对象传递给spring控制器?

我将不胜感激。

0 个答案:

没有答案