繁体   English   中英

如何为数组或列表(非项目名称)创建 java json dto?

[英]How to create java json dto for array or lists (non item name)?

我尝试从 controller 输入 json 读取

当我在节点中使用名称时,一切正常

有json

{
    "itemList": [
        {
            "name": "Alex",
            "surname": "Ivanov",
            "age": "25"
        },
        {
            "name": "Daria",
            "surname": "Ivanova",
            "age": "23"
        }
    ]
}

json的根目录中有 itemList

我可以通过这些课程来抓住它

controller

@RequestMapping(value = "/users",
        consumes = MediaType.APPLICATION_JSON_UTF8_VALUE,
        produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public class UserController {
    @Post
    public ResponseEntity add(@RequestBody UserDto user) {
    //todo check breack point hear
        return new ResponseEntity<UserDto>(user, null, HttpStatus.OK);
    }
}

和 model

@RequiredArgsConstructor
@Getter
@Setter
@ToString
@EqualsAndHashCode
public class UserDto implements Serializable {
    public List<UserItem> itemList;
}


@RequiredArgsConstructor
@Getter
@Setter
@ToString
@EqualsAndHashCode
public class UserItem implements Serializable {
    private String name;
    private String surname;
    private String age;
}

但是,我真的需要,我需要像这样解析 json :

只是没有名称的对象中的项目

{
    [
        {
            "name": "Alex",
            "surname": "Ivanov",
            "age": "25"
        },
        {
            "name": "Daria",
            "surname": "Ivanova",
            "age": "23"
        }
    ]
}

怎么做?

这是一个畸形的 JSON object。 里面的数组没有任何键。

{
    [
        {
            "name": "Alex",
            "surname": "Ivanov",
            "age": "25"
        },
        {
            "name": "Daria",
            "surname": "Ivanova",
            "age": "23"
        }
    ]
}

我认为您正在寻找的是 JSON 阵列:

    [
        {
            "name": "Alex",
            "surname": "Ivanov",
            "age": "25"
        },
        {
            "name": "Daria",
            "surname": "Ivanova",
            "age": "23"
        }
    ]

要解析此 JSON 数组,只需修改您的 Controller 以接受UserItem列表:

@RequestBody List<UserItem> users

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM