个性化阅读
专注于IT技术分析

如何从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)
未经允许不得转载:srcmini » 如何从Java中的JSON对象获取浮点值

评论 抢沙发

评论前必须登录!