0

我在使用 php-mysql 和 json 时遇到了这个错误,严重的是我已经花了 2 天时间,所以这是我的代码

require "includes/connexion.php";
$requete="SELECT * FROM contacts;";
$rep=$pdo->query($requete);

while($data=$rep->fetch(PDO::FETCH_ASSOC)){
$sortie[]=$data;
}
print(json_encode($sortie));
$rep->closeCursor();

这是 java 代码的一部分,结果参数中的 jsonArray 包含该值(来自控制台):

 [{"id":"1","nom":"Fedson Dorvilme","email":"fedsondorvilme@gmail.com","phone":"34978238","img":"ic_launcher"},{"id":"2","nom":"Darlene Aurelien","email":"darleneaurelien@yahoo.fr","phone":"34171191","img":"ic_launcher"}]



        JSONArray array = new JSONArray(result);


        for (int i = 0; i < array.length(); i++) {
            JSONObject json_data = array.getJSONObject(i);

            Log.i("MyLogFlag", "Nom Contact: " + json_data.getString("nom"));
            returnString = "\n\t" + array.getJSONArray(i);
            System.out.println(" ********** RS [ "+returnString+" ]****************");

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

    }

在此先感谢您的帮助

4

1 回答 1

1

这是你的 json 结构:

[
    {
        "id": "1",
        "nom": "Fedson Dorvilme",
        "email": "fedsondorvilme@gmail.com",
        "phone": "34978238",
        "img": "ic_launcher"
    },
    {
        "id": "2",
        "nom": "Darlene Aurelien",
        "email": "darleneaurelien@yahoo.fr",
        "phone": "34171191",
        "img": "ic_launcher"
    }
]

从您的 Java 代码:

JSONArray array = new JSONArray(result);  // OK


    for (int i = 0; i < array.length(); i++) {
        JSONObject json_data = array.getJSONObject(i); // OK

        returnString = "\n\t" + array.getJSONArray(i); // ??? wrong!! 
    }

您尝试从数组中获取数组,但它的JSONObject.

合适的方式:

   JSONArray gb = new JSONArray(str);

    for (int j = 0; j < gb.length(); j++) {
        JSONObject element = gb.getJSONObject(j);

        int id = element.getInt("id");
        int phone = element.getInt("phone");
        String nom = element.getString("nom");
        String email = element.getString("email");
        String img = element.getString("img");          
    }
于 2013-10-29T16:14:09.840 回答