我是Java和Json的新手。我想问一下如何获得以下Json输出。
{
"AppData": {
"status": "****",
"message": [
""
]
},
"Data": {
"token": "****"
}
}
我使用以下代码。 用于从数据库检索数据,导入HashMap并从HashMap检索的代码。
HashMap<AppDataRequest, AppData> appdatas = new HashMap<AppDataRequest, AppData>();
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://****:3306/****";
static final String USER = "****";
static final String PASS = "****";
public AppDataService(){
Connection conn = null;
Statement stat = null;
try{
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(DB_URL, USER, PASS);
stat = conn.createStatement();
String sql = "SELECT * FROM testdata";
ResultSet resu = stat.executeQuery(sql);
while(resu.next()){
int id = resu.getInt("app_id");
String email = resu.getString("email");
String password = resu.getString("password");
String token = resu.getString("token");
appdatas.put(new AppDataRequest(id, email, password), new AppData(" ", "success", token));
}
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){
}
try{
if(conn!=null){
conn.close();
}
}
catch(SQLException se3){
se3.printStackTrace();
}
}
}
public AppData getSAppData(int id, String email, String password){
return appdatas.get(new AppDataRequest (id, email, password));
}
POST代码
@POST
@Path("/appdatas")
public AppData getSAppData(AppDataRequest adr) {
AppData appdata = ads.getSAppData(adr.getId(), adr.getEmail(), adr.getPassword());
if(appdata == null){
throw new DataNotFoundException(" ");
}
return appdata;
}
我在Postman的输出是
{
"message": "****",
"status": "****",
"token": "****"
}
我希望得到输出,如Json输出中所示。我该怎么办?
答案 0 :(得分:0)
您的输出是您返回的数据的Json表示。
以下方法返回AppData
类型的对象,该对象是appdatas
地图的值。
public AppData getSAppData(int id, String email, String password){
return appdatas.get(new AppDataRequest (id, email, password));
}
如果要更改输出,请返回相应的数据,键(AppDataRequest
)对象和值(AppData
)对象。