我如何从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" ;
它将起作用。