gpt4 book ai didi

java - 在 Json 之后返回三种 int 可能性之一

转载 作者:行者123 更新时间:2023-12-01 12:33:31 25 4
gpt4 key购买 nike

我正在对 API 进行 Android 登录调用,响应可能是两个不同的 json:

A.- Json 错误 {“message”:“未找到”,“error”:“未经授权”,“status”:401}

B.-Json 成功 {“权限”:10,“ac_status”:“Activity ”}

我的想法是在检查 Json 标签后返回主屏幕这三个(int)值之一:

如果获取 JSON 时出错(例如服务器关闭),则返回 0
登录成功返回1
如果登录错误,则返回 2(严重错误,JSON null)

我正在 AsyncTask 上尝试类似的操作,它有效,但我总是在服务器错误和登录成功时得到 0。我怎样才能做到呢?提前致谢。

@Override
protected Void doInBackground(Void... params) {
...
...

int valueReturn =0;
JSONObject response = jsonService.call(url);

try {
if (response.getString("TAG_ERROR")
valueReturn = 2;
else
valueReturn= 1;

} catch (JSONException e) {
valueReturn = 0;
}

最佳答案

works but I always get 0 on server error and login success.

因为提供的 JSON 字符串中不存在 TAG_ERROR 键,因此控制始终在 catch block 中。

 How I can do it?

使用JSONObject.has(String KEY_NAME)在访问值之前检查键是否存在:

if (response.has("error"){

// server error
}else if (response.has("ac_status"){
// login success
}else{

//error getting Json

}

关于java - 在 Json 之后返回三种 int 可能性之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25749875/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com