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

时间:2013-08-09 11:05:24

标签: php android json

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

2 个答案:

答案 0 :(得分:0)

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

JSONArray jArray = new JSONArray(result);

答案 1 :(得分: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());
}