java很简单。json提取浮点
我一直试图从JSON中读取值,但无法提取浮点变量
在这个例子中,我试图提取第一个值(23.21),但我得到了一个错误
java.lang.ClassCastException: class java.lang.Double cannot be cast to class java.lang.Float (java.lang.Double and java.lang.Float are in module java.base of loader 'bootstrap')
然后,当我试图提取第二个值(58)时,我得到了另一个错误
java.lang.ClassCastException: class java.lang.Long cannot be cast to class java.lang.Double (java.lang.Long and java.lang.Double are in module java.base of loader 'bootstrap')
你有解决办法吗?我想把我的值提取为浮点变量
public class testJSON {
public static void main(String[] args) {
String inputJson = "{\"AP_ID\":\"123456\",\"PI_ID\":\"12\",\"values\":[{\"type\":\"Temperature\",\"value\":23.21},{\"type\":\"Luminosity\",\"value\":58}]}";
JSONParser parser = new JSONParser();
try {
JSONObject json = (JSONObject) parser.parse(inputJson);
String AP_ID = (String) json.get("AP_ID");
String PI_ID = (String) json.get("PI_ID");
JSONArray values = (JSONArray) json.get("values");
values.forEach( value -> extractValue((JSONObject) value, AP_ID, PI_ID));
}catch (ParseException e) {
e.printStackTrace();
}
}
private static void extractValue(JSONObject value, String AP_ID, String PI_ID){
String type = (String) value.get("type");
System.out.println(type);
System.out.println(value.get("value"));
var readValue = (float) value.get("value");
InputValue inputValue = new InputValue(readValue, AP_ID, type, PI_ID);
}
}
共 (0) 个答案