2

ログインとパスワードが正しい場合に 1 または 0 を返す単純な GET リクエストを実行しました。私は別のスレッドで接続を行います。

このような :

public void getConnection(){

    String url = null;

    url = NOM_HOTE + PATH_METHODE + "identifiant="+ identifiant.getText().toString() + "&password="+ password.getText().toString();

     HttpClient httpClient = new DefaultHttpClient();

     try{
         HttpGet httpGet = new HttpGet(url);
         HttpResponse httpResponse = httpClient.execute(httpGet);
         HttpEntity httpEntity = httpResponse.getEntity();

         if(httpEntity != null){


             InputStream inputStream = httpEntity.getContent();

             //Lecture du retour au format JSON
             BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
             StringBuilder stringBuilder = new StringBuilder();

             String ligneLue = bufferedReader.readLine();
             while(ligneLue != null){
                 stringBuilder.append(ligneLue + " \n");
                 ligneLue = bufferedReader.readLine();
             }
             bufferedReader.close();

             JSONObject jsonObject = new JSONObject(stringBuilder.toString());

             Log.i("Chaine JSON", stringBuilder.toString());   


             JSONObject jsonResultSet = jsonObject.getJSONObject("nb"); <--it's here where the error occured

//               int nombreDeResultatsTotal = jsonResultSet.getInt("nb");
//               Log.i(LOG_TAG, "Resultats retourne" + nombreDeResultatsTotal);    

         }// <-- end IF          
     }catch (IOException e){
         Log.e(LOG_TAG+ "1", e.getMessage());
     }catch (JSONException e){
         Log.e(LOG_TAG+ "2", e.getMessage());

     }
}

私はこのようなJSONリターンを持っています:{"nb":"1"}または{"nb":"0"} 私のJSONは正しいです. catch(JSONExceptionしかし、フォームを送信すると、このエラーが発生します:

11-07 17:01:57.833:​​ E/ClientJSON2(32530): タイプ java.lang.String の nb の値 1 を JSONObject に変換できません

理由がわかりませんが、私の構文、接続は正しく、タグ「Chaine JSON」のログ{"nb:"1"}には応答があります..

4

3 に答える 3

0

「nb」で表される値は、オブジェクトではなく文字列です。

値が数値の場合jsonObject.getString("nb");でも使用できますjsonObject.getInt("nb");

于 2013-11-08T08:25:47.110 に答える
0

使用する

String myReturnValue = jsonObject. getString("nb");

それ以外の

JSONObject jsonResultSet = jsonObject.getJSONObject("nb");

これは文字列を返します;)

于 2013-11-08T08:21:51.703 に答える