Json数据适配吻合

This commit is contained in:
ZhanGSKen 2025-06-05 15:06:55 +08:00
parent bc697279ad
commit 476ce02fc8
6 changed files with 63 additions and 38 deletions

View File

@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle #Created by .winboll/winboll_app_build.gradle
#Thu Jun 05 04:02:31 GMT 2025 #Thu Jun 05 07:02:58 GMT 2025
stageCount=8 stageCount=8
libraryProject=libappbase libraryProject=libappbase
baseVersion=15.8 baseVersion=15.8
publishVersion=15.8.7 publishVersion=15.8.7
buildCount=1 buildCount=12
baseBetaVersion=15.8.8 baseBetaVersion=15.8.8

View File

@ -24,7 +24,7 @@ dependencies {
api fileTree(dir: 'libs', include: ['*.jar']) api fileTree(dir: 'libs', include: ['*.jar'])
// //
api 'com.squareup.okhttp3:okhttp:4.4.1' api 'com.squareup.okhttp3:okhttp:4.4.1'
api 'com.fasterxml.jackson.core:jackson-databind:2.15.2' api 'com.fasterxml.jackson.core:jackson-databind:2.18.2'
// Gson依赖 // Gson依赖
api 'com.google.code.gson:gson:2.10.1' api 'com.google.code.gson:gson:2.10.1'

View File

@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle #Created by .winboll/winboll_app_build.gradle
#Thu Jun 05 04:02:31 GMT 2025 #Thu Jun 05 07:02:58 GMT 2025
stageCount=8 stageCount=8
libraryProject=libappbase libraryProject=libappbase
baseVersion=15.8 baseVersion=15.8
publishVersion=15.8.7 publishVersion=15.8.7
buildCount=1 buildCount=12
baseBetaVersion=15.8.8 baseBetaVersion=15.8.8

View File

@ -28,6 +28,7 @@ public class LogonActivity extends Activity implements IWinBoLLActivity {
public static final String DEBUG_HOST = "http://10.8.0.250:456"; public static final String DEBUG_HOST = "http://10.8.0.250:456";
public static final String YUN_HOST = "https://yun.winboll.cc"; public static final String YUN_HOST = "https://yun.winboll.cc";
String mHost = ""; String mHost = "";
RadioButton mrbYunHost; RadioButton mrbYunHost;
RadioButton mrbDebugHost; RadioButton mrbDebugHost;

View File

@ -7,32 +7,51 @@ package cc.winboll.studio.libappbase.models;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
public class ResponseData { public class ResponseData {
public static final String STATUS_SUCCESS = "success";
public static final String STATUS_ERROR = "error";
@JsonProperty("status") @JsonProperty("status")
private String status; private String status;
@JsonProperty("message") @JsonProperty("message")
private String message; private String message;
@JsonProperty("data")
private UserInfoModel data;
// 原代码只有带参构造函数缺少无参构造函数
// public ResponseData(String status, String message) {
// this.status = status;
// this.message = message;
// }
// 添加无参构造函数Jackson 反序列化必需
public ResponseData() { public ResponseData() {
// 空实现 this.status = "";
this.message = "";
this.data = new UserInfoModel();
} }
// 保留带参构造函数可选用于手动创建实例 public ResponseData(String status, String message, UserInfoModel data) {
public ResponseData(String status, String message) {
this.status = status; this.status = status;
this.message = message; this.message = message;
this.data = data;
}
public void setStatus(String status) {
this.status = status;
}
public String getStatus() {
return status;
}
public void setMessage(String message) {
this.message = message;
} }
// Getter Setter public String getMessage() {
public String getStatus() { return status; } return message;
public void setStatus(String status) { this.status = status; } }
public String getMessage() { return message; }
public void setMessage(String message) { this.message = message; } public void setData(UserInfoModel data) {
this.data = data;
}
public UserInfoModel getData() {
return data;
}
} }

View File

@ -9,10 +9,12 @@ import android.content.Context;
import android.os.Handler; import android.os.Handler;
import android.os.Looper; import android.os.Looper;
import cc.winboll.studio.libappbase.LogUtils; import cc.winboll.studio.libappbase.LogUtils;
import cc.winboll.studio.libappbase.models.ResponseData;
import cc.winboll.studio.libappbase.models.UserInfoModel; import cc.winboll.studio.libappbase.models.UserInfoModel;
import com.google.gson.Gson; import com.google.gson.Gson;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.net.URLDecoder;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.security.KeyPair; import java.security.KeyPair;
import java.security.PrivateKey; import java.security.PrivateKey;
@ -25,6 +27,7 @@ import okhttp3.OkHttpClient;
import okhttp3.Request; import okhttp3.Request;
import okhttp3.RequestBody; import okhttp3.RequestBody;
import okhttp3.Response; import okhttp3.Response;
import java.io.UnsupportedEncodingException;
public class YunUtils { public class YunUtils {
public static final String TAG = "YunUtils"; public static final String TAG = "YunUtils";
@ -95,24 +98,26 @@ public class YunUtils {
@Override @Override
public void onSuccess(String responseBody) { public void onSuccess(String responseBody) {
LogUtils.d(TAG, "onSuccess"); LogUtils.d(TAG, "onSuccess");
try { LogUtils.d(TAG, String.format("responseBody %s", responseBody));
String formattedJson = JsonFormatter.formatUnicodeToChinese(responseBody); Gson gson = new Gson();
LogUtils.d(TAG, formattedJson); ResponseData result = gson.fromJson(responseBody, ResponseData.class); // 转为 Result 实例
return; if(result.getStatus().equals(ResponseData.STATUS_SUCCESS)) {
} catch (Exception e) {
LogUtils.d(TAG, e, Thread.currentThread().getStackTrace());
}
try { UserInfoModel userInfoModel = result.getData();
UserInfoModel userInfoModel = UserInfoModel.parseStringToBean(responseBody, UserInfoModel.class); if (userInfoModel != null) {
if (userInfoModel != null) { LogUtils.d(TAG, "收到网站 UserInfoModel");
LogUtils.d(TAG, "收到网站 UserInfoModel"); String token = userInfoModel.getToken();
String token = userInfoModel.getToken(); saveLocalToken(token);
saveLocalToken(token); checkLoginStatus();
checkLoginStatus(); }
} else if(result.getStatus().equals(ResponseData.STATUS_ERROR)) {
try {
String decodedMessage = URLDecoder.decode(result.getMessage(), "UTF-8");
LogUtils.d(TAG, "服务器返回信息: " + decodedMessage);
} catch (UnsupportedEncodingException e) {
LogUtils.d(TAG, e, Thread.currentThread().getStackTrace());
} }
} catch (IOException e) {
LogUtils.d(TAG, e, Thread.currentThread().getStackTrace());
} }
} }