Java中对json字符串判断是否为数字,并将科学记数法转为原有数字类型
在对json字符串取值时,有些长数字被解析成了科学记数法的形式,导致接⼝请求失败;所以需要对json值进⾏类型判断并进⾏转换:
利⽤java.math.BigDecimal可以创建对象对数字形式进⾏转换,同时可以利⽤其创建对象时的异常信息来进⾏数字判断
判断是否为数字:
public static boolean isNumeric(String str){
//如果是数字,创建new BigDecimal()时肯定不会报错,那就可以直接返回true
String bigdecimal;
try{
bigdecimal=new BigDecimal(str).toString();
}catch(Exception e){
return false;//异常说明包含⾮数字。
}
return true;
}
json值的类型有哪些
接着就可以利⽤判断结果进⾏转换了
map =new Gson().fromJson(String.(i)),HashMap.class);
String  oldValue = ("value").toString();
if(isNumeric(oldValue)){
BigDecimal value =new BigDecimal(oldValue);
restful.query.("name").toString(),value);
}else{
restful.query.("name").toString(),("value"));
}
这个时候再运⾏,取出来的值就正常了