问题描述
我认为班级结构有问题。但我看不出在哪里。这是一个代码。我将只使用 JSON 中的一些值。如果您需要其他代码部分,请告诉我。 Maily 我想我在这里得到了空值的对象(用户):
User userDTOGetone = userRequester.getUser
(
token,new HashMap<String,Object>() {{ put("Uuid",userResponseDTO.getUserUuid()); }}
)
.getBody()
.as(User.class);
我想这是类结构的问题 .as(User.class)。我没有比较它们一次,我找不到问题。提前致谢。
解决方法
最后,我发现了你的问题。
1.@JsonRootName("User")
在 User
类中不起作用,我必须创建一个单独的 UserDTo
类。
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
@Data
public class UserDTO {
@JsonProperty("User")
private User user;
}
2.在课堂User
private HashMap<String,HashMap<String,CustomFieldDTO> > UserCustomFields;
应该
private Map<String,CustomFieldDTO> UserCustomFields;
3.在课堂CustomFieldDTO
private HashMap<String,CustomFieldVariableDTO> WebAdmin;
private HashMap<String,CustomFieldVariableDTO> Client;
应该
private CustomFieldVariableDTO WebAdmin;
private CustomFieldVariableDTO Client;
我做了一个简单的测试
UserDTO user = res.as(UserDTO.class);
System.out.println(user);
UserDTO(user=User(Uuid=b5ee1186-7355-4810-a422-c427c1ae420c,Username=golden_snich_testt,Email=golsnich4599@gmail.com,FirstName=Bob,LastName=Sigal,Birthdate=1995-01-07T00:00:00Z,Phone=+12698741258,Notes=null,Locked=false,PostPayLimit=10.0,HighSchoolUuid=null,IsVerifiedHighSchoolUser=false,UserCustomFields={9cebfaaa-ca66-4bbd-baa3-
557b0645c293=CustomFieldDTO(FieldUuid=null,FieldType=String,FieldName=null,WebAdmin=CustomFieldVariableDTO(Status=0,AllowChangeStatus=false),Client=CustomFieldVariableDTO(Status=0,IsDefault=false,SerializedValue=Nickyfieldname213241),bb854ba1-8ef7-4cfb-9fe7-
8c6d9a0551b2=CustomFieldDTO(FieldUuid=null,SerializedValue=Nickyfieldname2)}))