我正在尝试将用户添加到组中,然后返回所有这些用户,并使用刚刚添加到的组更新其groupid
。我遇到的麻烦是,我似乎无法将JSON数据传递到我的方法中以更改每个用户的groupid
字段。
我尝试使用JSONObject
和JSONArray
,但是由于我不熟悉它,所以我不太确定我是否使用正确。
@PostMapping(value = "/update")
public List<User> updateGroupID(@RequestBody List<User> incomingusers, Integer groupid) {
List<User> newUserList = new ArrayList<User>();
for(User updateduser : incomingusers){
updateduser.setGroupID(groupid);
userRepo.save(updateduser);
newUserList.add(updateduser);
}
return newUserList;
}
这是从控制台发送到我的方法的JSON
输出。管理多个用户是我遇到的麻烦。
data:
0: {username: "seanuser", userTypeID: 2, groupID: null, password: "password", email: "sean@gmail.com", …}
1: {username: "noahuser", userTypeID: 2, groupID: null, password: "password", email: "noah@gmail.com", …}
groupID: 3
这是应该返回用户和组ID的代码
saveGroupHandler = () => {
const groupID= this.state.groupId;
const updatedGroup = {...this.state.groupToEdit};
console.log(updatedGroup)
this.setState(state=>({groupSaved:!state.groupSaved}))
axios.post(`http://localhost:8080/user/update/${groupID}`,updatedGroup)
.then(response=>console.log(updatedGroup))
.catch(error =>console.log(error));
}
我希望将这些用户放入我的User
类型的列表中,以便随后可以更新groupid
。
这是我得到的输出:
Can not deserialize instance of java.util.ArrayList out of START_OBJECT token
答案 0 :(得分:0)
如果您具有上面@Taavi Kivimaa提到的有效JSON字符串,则可以像这样反序列化它:
private ObjectMapper objectMapper = new ObjectMapper();
List<Usere> users = readValue(jsonString, new TypeReference<List<User>>() {});
当然,您需要将其包装在try-catch块中。