2

DjangoからAndroidに送信されたjson配列文字列を解析しようとして問題が発生しました。これはjson文字列の形式です。

[
    {
        "pk": 1,
        "model": "brete.brete",
        "fields": {
            "contenido": "93iw09if",
            "fecha": "2011-05-07 03:06:40",
            "codigo_confirmacion": "",
            "correo": "oij8@gmail.com",
            "activado": false,
            "titulo": "234"
        }
    },
    {
        "pk": 2,
        "model": "brete.brete",
        "fields": {
            "contenido": "asoidjfdiso",
            "fecha": "2011-05-07 03:08:09",
            "codigo_confirmacion": "",
            "correo": "oijoiji@oijoi.com",
            "activado": false,
            "titulo": "ijj"
        }
    }
]
etc

これが私がデータを取得する方法です:

        //parse json data
        try{
            JSONArray jArray = new JSONArray(result);
            for(int i=0;i<jArray.length();i++){
                JSONObject json_data = jArray.getJSONObject(i);
                Brete resultRow = new Brete();
                resultRow.contenido = json_data.getString("contenido");
                resultRow.fecha = json_data.getString("fecha");
                resultRow.correo = json_data.getString("correo");
                arrayOfWebData.add(resultRow);
            }
        }
        catch(JSONException e){
                Log.e("log_tag", "Error parsing data "+e.toString());
        }

のデータを取得しようとしていますが'contenido'、行が表示さ'fecha''correo'ません。これはコード全体ではなく、問題は別の場所にある可能性がありますが、ネストされたjsonをjson_data.getString()で正しく解析しないという問題である可能性があります。どんな助けでも大歓迎です。

4

1 に答える 1

2

フィールドを取得する前に、実際に「フィールド」オブジェクトに到達する必要があります。

//parse json data
try{
    JSONArray jArray = new JSONArray(result);
    for(int i=0;i<jArray.length();i++){
        JSONObject buf = jArray.getJSONObject(i);
        JSONObject json_data = buf.getJSONObject("fields");
        Brete resultRow = new Brete();
        resultRow.contenido = json_data.getString("contenido");
        resultRow.fecha = json_data.getString("fecha");
        resultRow.correo = json_data.getString("correo");
        arrayOfWebData.add(resultRow);
    }
}
catch(JSONException e){
        Log.e("log_tag", "Error parsing data "+e.toString());
}
于 2012-08-18T00:45:05.713 に答える