0

一个错误说 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());
4

2 回答 2

0

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

JSONArray jArray = new JSONArray(result);
于 2013-08-09T11:10:38.303 回答
0

您的 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());
}
于 2013-08-09T11:52:18.530 回答