gpt4 book ai didi

java - 如何从URL获取数据并将其转换为json?

转载 作者:行者123 更新时间:2023-12-02 04:10:51 25 4
gpt4 key购买 nike

我正在尝试使用以下代码从 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 异常?

最佳答案

查看代码后,您尝试将值转换为 double ,这是错误,您将在 状态下得到 long >double 当尝试从 JSONObject 获取键 "value" 的值时。要获得所需的结果,首先将其转换为 long 并然后在double中。

double kw = (double)((long) device.get("value"));

我观察到的另一件事是,您试图将键 "serverTimeStamp" 的值转换为 Timestamp ,这是错误的,说明您将会变得long,您必须创建新的 Timestamp 实例。

Timestamp dateTime = new Timestamp ((long) device.get("serverTimeStamp"));

关于java - 如何从URL获取数据并将其转换为json?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33820609/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com