java 获得json对象的属性值,如何从Java中的JSON对象获取浮点值

JSONObject是名称/值对的无序集合。它的外部形式是用大括号括起来的字符串, 名称和值之间带有冒号, 值和名称之间带有逗号。内部形式是一个对象, 该对象具有用于按名称访问值的get和opt方法, 以及用于按名称添加或替换值的put方法。

在Java中, 可以使用import org.json.JSONObject导入此类。 JSONObject类型的对象具有许多有用的方法来检索其任何值, 例如getBoolean, getInt, getString, getDouble或getLong。这些方法返回通过其名称映射的值(如果存在), 并将它们转换为特定类型(根据名称):

JSONObject myObject = new JSONObject("{ \"anyString\":\"Hello World\", \"aNumber\": 123, \"aDouble\": -895.25 }");

myObject.getString("anyString"); // Hello World

myObject.getNumber("aNumber"); // 123

myObject.getDouble("aDouble"); // -895.25

可怜的是, 对于浮点值(带小数的数字), 没有诸如getFloat这样的方法可以返回所需的类型。如果你擅长数学和编程, 那么你会认为getDouble函数可能会为你提供窍门, 例如12345678987.00, 但是它将提供1.2345678987E10作为结果, 而使用getLong则会删除小数。

从JSON Object元素检索float值

为了实现从Float类型的JSON对象获取元素的目标, 可以使用Big Decimal类。 BigDecimal类提供了用于算术, 缩放操作, 舍入, 比较, 哈希和格式转换的操作。 BigDecimal类为用户提供了对舍入行为的完全控制。如果未指定舍入模式并且无法表示确切结果, 则会引发异常;否则, 将抛出异常。否则, 可以通过向运算提供适当的MathContext对象, 以选定的精度和舍入模式进行计算。无论哪种情况, 都提供了八种舍入模式用于控制舍入。

在类的顶部使用以下语句导入BigDecimal类:

import java.math.BigDecimal;

然后, 你要做的就是从JSON对象所需的元素中将double值(返回指数值)作为第一个参数提供给BigDecimal.valueOf方法, 并从返回的值中执行floatValue方法:

JSONObject myObject = new JSONObject("{ \"anyString\":\"Hello World\", \"aNumber\": 123, \"aDouble\": 12345678987.00 }");

float myFloatValue = BigDecimal.valueOf(myObject.getDouble("aDouble")).floatValue();

编码愉快!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值