我試圖從URL中獲取數據,並使用下面的代碼將其存儲在JSON格式:如何從URL獲取數據並將其轉換爲json?
String fullURL="http://XXX:8101/Myapp/XXX/XXX";
URL u = new URL(fullURL);
System.out.println(fullURL);
HttpURLConnection huc = (HttpURLConnection) u.openConnection();
System.out.println("Message :"+huc.getResponseMessage());
JSONParser parser = new JSONParser();
BufferedReader rd = new BufferedReader(new InputStreamReader(huc.getInputStream()));
JSONArray a = (JSONArray) parser.parse(rd);
for (Object o : a)
{
org.json.simple.JSONObject device = (org.json.simple.JSONObject) o;
double kw = (double) device.get("value");
System.out.println(kw);
//getKw().setKw(kw);
String sensortype = (String) device.get("senorType ");
System.out.println(sensortype);
//getSensorType().setSenorType(sensortype);
Timestamp dateTime = (Timestamp) device.get("serverTimeStamp");
System.out.println(dateTime);
//getServerTimeStamp().setServerTimeStamp(dateTime);
}
但我收到以下錯誤:
java.lang.ClassCastException: org.json.simple.JSONObject cannot be cast to org.json.simple.JSONArray.
什麼我做錯了,如何解決這個問題?
我改變了基於用戶評論最後我的數組是:
[
{
"value": 777,
"percentage": 0,
"serverTimeStamp": 1436900289000,
"sensorType": "S"
},
{
"value": 777,
"percentage": 0,
"serverTimeStamp": 1436900289000,
"sensorType": "V"
},
{
"value": 777,
"percentage": 0,
"serverTimeStamp": 1436900289000,
"sensorType": "R"
}
]
爲什麼我得到一個java.lang.ClassCastException:java.lang.Long中不能轉換爲java.lang.Double中例外?
您可以將JSON字符串你的問題? – Dev
從異常它看起來像響應是JSON對象像{「名稱」:「xyz」}而不是像[{「name」:「xyz」}]]的JSON數組。請打印內容並在此處發佈。 –
你是對的@RishiSaraf。我改變了我的代碼,請現在看看。 – MMMMS