我正在编写一个AWS应用程序接口程序来部署在RESTful上。我正在从程序中获得JSON输出。当我测试程序时,它返回的JSON输出与预期输出不同。方向,大小写也不像我想的那样正确。
预期输出:
[
{
"Username": "****",
"UUID": "****",
"Tenant_ID": "****",
"Site_ID": "****"
}
]接收的输出:
[
{
"UUID": "****",
"site_ID": "****",
"tenant_ID": "****",
"userName": "****"
}
]资源代码:
public List<Data> getData(){
List<Data> list = new ArrayList<>();
Connection conn = null;
Statement stat = null;
try{
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(DB_URL);
stat = conn.createStatement();
String sql = "SELECT * FROM data";
ResultSet resu = stat.executeQuery(sql);
while(resu.next()){
String UserName = resu.getString("username");
String UUID = resu.getString("UUID");
String Tenant_ID = resu.getString("tenant_id");
String Site_ID = resu.getString("site_id");
list.add(new Data(UserName, UUID, Tenant_ID, Site_ID));
}
resu.close();
stat.close();
conn.close();
}
catch(SQLException se){
se.printStackTrace();
}
catch(Exception e){
e.printStackTrace();
}
finally{
try{
if(stat!=null){
stat.close();
}
}
catch (SQLException se2){
se2.printStackTrace();
}
try{
if(conn!=null){
conn.close();
}
}
catch(SQLException se3){
se3.printStackTrace();
}
}
return list;
}服务代码:
@Produces(MediaType.APPLICATION_JSON)
@GET
@Path("/v2")
public List<Data> getData(){
return ds.getData();
}数据类:
public class Data {
private String UserName;
private String UUID;
private String Tenant_ID;
private String Site_ID;
public Data(){
}
public Data(String userName, String uUID, String tenant_ID, String site_ID) {
super();
UserName = userName;
UUID = uUID;
Tenant_ID = tenant_ID;
Site_ID = site_ID;
}
public Data(String uUID, String tenant_ID, String site_ID) {
super();
UUID = uUID;
Tenant_ID = tenant_ID;
Site_ID = site_ID;
}
@JsonProperty("Username")
public String getUserName() {
return UserName;
}
public void setUserName(String userName) {
UserName = userName;
}
@JsonProperty("UUID")
public String getUUID() {
return UUID;
}
public void setUUID(String UUID) {
this.UUID = UUID;
}
@JsonProperty("Tenant_ID")
public String getTenant_ID() {
return Tenant_ID;
}
public void setTenant_ID(String tenant_ID) {
Tenant_ID = tenant_ID;
}
@JsonProperty("Site_ID")
public String getSite_ID() {
return Site_ID;
}
public void setSite_ID(String site_ID) {
Site_ID = site_ID;
}
}感谢每一位在这个问题上提供帮助的成员。
发布于 2017-05-11 13:52:12
当您只想在项目中包含较新版本的jackson (在不同的项目中) @JsonProperty时,您很有可能从旧的org.codehaus.jackson包中导入jackson批注com.fasterxml.jackson批注。
检查旧"codehaus“版本的依赖项,并将其更新为仅引用新版本(此更改应与您的代码向前兼容)。
然后尝试重新构建,看看它是否按预期工作。
发布于 2017-05-11 14:05:27
尝试将jackson注释降级到较旧的codehhaus版本。当这样的问题发生时,就会与jersey使用的jackson版本和annotations版本混淆。由于您使用的是新注释,因此请使用较旧的注释。org.codehaus.jackson.annotate.JsonProperty
https://stackoverflow.com/questions/43907081
复制相似问题