gpt4 book ai didi

java - 字符串无法转换为 JSONObject?

转载 作者:行者123 更新时间:2023-11-29 04:02:24 26 4
gpt4 key购买 nike

我是开发 Android 应用程序的初学者,这是我第一次从头开始编码,这就是为什么我觉得这对我来说非常困难。基本上,我只是想摆脱错误,这样我现在就可以开始在我的 Android 应用程序上显示 SQL 表了。当我从 mySQL 表中获取数据时,我被这个错误阻止了。我在 LogCat 得到这个:

Error parsing data org.json.JSONException: Value <!DOCTYPE of type java.lang.String cannot be converted to JSONObject
05-03 15:45:25.586: W/System.err(552): java.lang.NullPointerException
05-03 15:45:25.626: W/System.err(552): at hs.stockapp.StocksTask.doInBackground(StocksTask.java:64)

如果我对错误的理解是正确的,那么我的 StocksTask.java 文件的第 64 行有问题。

第 64 行:if (json.getString(KEY_SUCCESS) != null)

StocksTask.java 代码摘录:

protected Integer doInBackground(String... params)  {

UserFunctions userFunction = new UserFunctions();
JSONObject json = userFunction.findStocks();
try {
if (json.getString(KEY_SUCCESS) != null) {
String res = json.getString(KEY_SUCCESS);

if(Integer.parseInt(res) == 1){
DatabaseHandler db = new DatabaseHandler(activity.getApplicationContext());
JSONObject json_stocks = json.getJSONObject("stocks");
Log.v("company_name", json_stocks.getString(STOCK_COMPANY_NAME));
userFunction.findStocks();
db.findStocks(json_stocks.getString(STOCK_COMPANY_NAME), json_stocks.getString(STOCK_SYMBOL), json_stocks.getString(STOCK_MCAP));

responseCode = 1;
// Close Screen
//finish();
}else{
responseCode = 0;
// Error
}
}
}
catch (NullPointerException e) {
e.printStackTrace();
}
catch (JSONException e) {
e.printStackTrace();
}
return responseCode;
}

用户函数.java

 public JSONObject findStocks(){
// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("tag", findstocks_tag));
JSONObject json = jsonParser.getJSONFromUrl(stocksURL, params);
// return json
return json;
}

索引.php

else if ($tag == 'stocks'){
// request type is view stock list
$stocks = $db->search_stocks();
if ($stocks != false) {
// stocks
// echo json with success = 1
$response["success"] = 1;
$response["stocks"]["company_name"] = $stocks["name"];
$response["stocks"]["com_sym"] = $stocks["com_sym"];
$response["stocks"]["mkt_cap"] = $stocks["mkt_cap"];
echo json_encode($response);
} else {
// no stocks found
// echo json with error = 0
$response["error"] = 1;
$response["error_msg"] = "No stocks found";
echo json_encode($response);
}

}

数据库函数.php

    public function search_stocks() {
$result = mysql_query("SELECT company_name, com_sym, mkt_cap from stock ORDER BY com_sym") or die(mysql_error());
$no_of_rows = mysql_num_rows($result);

if ($no_of_rows > 0) {
while($row=mysql_fetch_assoc($result)){
$output[] = $row;
}
print(json_encode($output));
return $row;
return true;
} else {
// stocks not existed
return false;
}
mysql_close();

search_stocks 函数的生成结果

[{"company_name":"Asian Chorva","com_sym":"ASIA","mkt_cap":"4534356"},{"company_name":"Banko de Oro","com_sym":"BDO","mkt_cap":"54434"},{"company_name":"Bank of the Phil Island","com_sym":"BPI","mkt_cap":"5464554"},{"company_name":"College Hive In Boon","com_sym":"CHIB","mkt_cap":"5434654"},{"company_name":"Critical Heart Throb Racing","com_sym":"CHTR","mkt_cap":"53544564654"}]

我应该如何处理第 64 行?非常感谢 :) 任何帮助将不胜感激。有关它的其他信息将非常有帮助。

最佳答案

错误信息是这样的:

Value <!DOCTYPE of type java.lang.String cannot be converted to JSONObject

如果是<!DOCTYPE那么它不是[{"company_name":… .

您需要弄清楚正在发出什么请求以及服务器返回 HTML 文档的原因。

检查您的服务器日志。这可能是一个错误文档。

关于java - 字符串无法转换为 JSONObject?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10430105/

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