我如何从Get请求的响应中获取字段

这是我的回应

我想解析器请求获取并获取“ referentiel”的值
    这是我的代码

响应:

{
"status": "livre",
"referentiel": "000001498675",
"digitalid": "00004328",
"nom": "SAMI IDRISS",
"date": "10/04/2018 00:00:00",
"email": "",
"mobile": "123456789",
"Compte_principale": "0821006348788",
"Login": "Sami"
}


我想解析器请求获取并获取“ referentiel”的值
这是我的代码

在此处输入代码:

  URL url = new URL(url1);
        HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
        InputStream inputStream = httpURLConnection.getInputStream();
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
        String line = "";
        while(line != null){
            line = bufferedReader.readLine();
            data = data + line;
        }

        JSONArray JA = new JSONArray(data);
        for(int i =0 ;i <JA.length(); i++){
            JSONObject JO = (JSONObject) JA.get(i);
            singleParsed = (String) JO.get("referentiel");




            dataParsed = dataParsed + singleParsed +"\n" ;


        }

    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (JSONException e) {
        e.printStackTrace();
    }


       // }


请帮帮我

最佳答案

问题是您的data响应不是对象数组,而是单个对象。因此,代替使用JSONArray,您需要直接访问JSONObject的密钥。

您当前的代码:

JSONArray JA = new JSONArray(data);
        for(int i =0 ;i <JA.length(); i++){
            JSONObject JO = (JSONObject) JA.get(i);
            singleParsed = (String) JO.get("referentiel");
            dataParsed = dataParsed + singleParsed +"\n" ;


改成:

    JSONObject jsonObject = new JSONObject(data);
    singleParsed = (String) jsonObject.get("referentiel");
    dataParsed = dataParsed + singleParsed +"\n" ;


它将起作用。

10-08 14:59