java - JSONException : Value of type java. lang.String 无法转换为 JSONObject

标签 java php android json pdo

我是 android 的新手,但我发现了一个应用程序,它可以与我一直在努力工作并填充数据库的网络抓取器一起使用。这是一个基本的应用程序,它使用 PHP 脚本从 MySQL 数据库中检索值并将它们显示在您的 Android 设备上。

这是 PHP:

<?php
try {
    $conn = new PDO('mysql:host=localhost;dbname=beanbag', **********, *******);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $results=$conn->query('SELECT * FROM Recipes');

    while ($results = $row->fetch(PDO::FETCH_ASSOC)){
    $output[]=$row;
    print(json_encode($output));
    }

} catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
}
$conn = null;
?>

原始代码使用了 mysql_connect,但我改为实现了 PDO。

这是Java:

protected void onPostExecute(Void v) {

        // ambil data dari Json database
        try {
            JSONArray Jarray = new JSONArray(result);
            for(int i=0;i<Jarray.length();i++)
            {
            JSONObject Jasonobject = null;
            //text_1 = (TextView)findViewById(R.id.txt1);
            Jasonobject = Jarray.getJSONObject(i);

            //get an output on the screen
            //String id = Jasonobject.getString("id");
            String name = Jasonobject.getString("Title");
            String db_detail="";

            if(et.getText().toString().equalsIgnoreCase(name)) {
            db_detail = Jasonobject.getString("ingredient");
            text.setText(db_detail);
            break;
            }
            //text_1.append(id+"\t\t"+name+"\t\t"+password+"\t\t"+"\n");

            }
            this.progressDialog.dismiss();

        } catch (Exception e) {
            // TODO: handle exception
            Log.e("log_tag", "Error parsing data "+e.toString());
        }
    }

Logcat 说:

Error parsing data org.json.JSONException: Value br of type java.lang.String cannot be converted to JSONArray

我尝试使用来自 this stackoverflow question 的{左大括号和}右大括号解决方案| ,但我不认为是这样。

最佳答案

在执行后首先获取 JSONObject,然后获取数组。如果仍然是相同的消息,那么您的服务器没有返回正确的 json 对象。

JSONObject jobj = new JSONObject(result);
JSONArray Jarray = jobj.getJSONArray("output");

关于java - JSONException : Value of type java. lang.String 无法转换为 JSONObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28250087/

相关文章:

java - 根据参数修改gradle BuildType

java - Apache Mahout——我应该用它来构建自定义推荐系统吗?

php - 如何创建具有双 GET 变量的数组

android - 从网络提供商处获取准确的当前位置

java - 不能在 RecyclerView 中使用 getLayoutPosition() 或 getAdapterPosition()

java - testng - 如何分离测试和支持方法?

java - 我可以直接将 .sql 文件导入 XAMPP 安装吗

php - Symfony 2 未按预期呈现欢迎页面

php - android与MYSQL数据库连接返回null值

java - 销毁 ViewPager