gpt4 book ai didi

java - Android JSONObject 始终返回 "null"

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

我正在尝试从我的网络服务器解析 JSON。获取数据不是问题,但当我尝试创建 JSONObject 时,它总是返回 null

我的 JSON:

{"apikey":"c34750f19843vo45239o","error":false}

还有我的 Java:

private class GetJSON extends AsyncTask<Void, Void, Void> {

@Override
protected void onPreExecute() {
super.onPreExecute();

}

@Override
protected Void doInBackground(Void... arg0) {
JSONResult = null;
HttpHandler sh = new HttpHandler();
sh.HTTPMethod = DefaultMethod;

// Making a request to url and getting response
String jsonStr = sh.makeServiceCall(ApiUrl+tmpUrl);

System.out.println("Response from "+ApiUrl+tmpUrl+": " + jsonStr);

if (jsonStr != null) {
try {
JSONResult = new JSONObject(jsonStr);

} catch (final JSONException e) {
System.out.println("Json parsing error: " + e.getMessage());
}
} else {
System.out.println("Couldn't get json from server.");
}

return null;
}

@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
clearRequest();
}

}

我尝试过 jsonStr.toString() 但结果相同。我还可以在 Java 中记录我的 JSON 字符串,但它不会被解析。

这是返回null的地方:

if(JSONResult != null && JSONResult.has("apikey")) {
ApiKey = JSONResult.getString("apikey");
System.out.println("Successfully got ApiKey: "+ApiKey);
}else{
if(JSONResult == null){System.out.println("Is Null");}
}

抱歉我的英语不好。希望你能理解:)

最佳答案

只是猜测,因为您没有显示足够的代码。

您很可能在收到结果之前检查过结果。 AsyncTask 与主线程异步运行,您必须等到它完成才能使用结果。

事实上,这就是为什么有 onPostExecute 方法的原因。这是处理结果的正确位置。

关于java - Android JSONObject 始终返回 "null",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43446396/

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