错误:java.lang.string无法转换为jsonobject


Error: java.lang.string cannot be converted to jsonobject

一个错误说java.lang.string无法转换为jsonobject,我如何将其转换为jsonobject

这是我的PHP代码:

<?php
mysql_connect("localhost","root","");
mysql_select_db("mydatabase");
    $query = "SELECT SUM(OrderPrice) as total FROM tbl_user";
$result = mysql_query($query);

while($row = mysql_fetch_assoc($result))
{
$new_arr[] = $row['total'];
}
echo json_encode($new_arr);
?>

我的安卓代码:

                try{
                    JSONArray jArray = new JSONArray(result);
                    for(int i=0;i<jArray.length();i++){
                        JSONObject json_data =     jArray.getJSONObject(i);
                        Log.i("log_tag","total: "+json_data.getString("total"));
                        total.setText("total");


                    }
                }catch(JSONException e){
                    Log.e("log_tag", "Error parsing data " + e.toString());

在下面的代码行中,结果是一个未在JSON中正确格式化的字符串,这就是您收到此错误的原因:

JSONArray jArray = new JSONArray(result);

您的JSON很可能是一个数字数组,而不是像这样的字典

["23.00", "24.00"]

所以当你做

JSONObject json_data =     jArray.getJSONObject(i);

你只会得到一个类似"23.00"的字符串。你不会得到一个JSON对象。因此,它导致了异常。您应该将其更改为:

String total = jArray.getString(i);

所以为了确认一下,你的代码应该是这样的:

try{
   JSONArray jArray = new JSONArray(result);
   for(int i=0;i<jArray.length();i++){
      String total = jArray.getString(i);
      Log.i("log_tag","total: "+total);
      total.setText(total);
   }
}catch(JSONException e){
   Log.e("log_tag", "Error parsing data " + e.toString());
}