【问题标题】:How to set Locale on GSON (for decimal number separators)如何在 GSON 上设置语言环境(用于十进制数字分隔符)
【发布时间】:2013-10-18 14:04:38
【问题描述】:

我知道您可以设置日期格式,但是您如何设置其他特定于语言环境的内容,例如十进制数字格式? (我的意思是逗号与点)

【问题讨论】:

  • 拜托,你能发布一个所需格式的例子吗?

标签: locale gson decimalformat


【解决方案1】:

简短的回答:你不知道。

您似乎有点混淆了数字的文本表示和实际数值。

虽然 JSON 是一种基于文本的数据交换格式,但 JSON 中的数字(相对于字符串)是一个数值,不受语言环境的影响。 Section 2.4 of the JSON specification 提供了具体定义(强调我的):

2.4。数字

数字的表示与大多数使用的类似
编程语言。一个数字包含一个整数分量
可以以可选的减号作为前缀,其后可以是 分数部分和/或指数部分。

不允许使用八进制和十六进制形式。前导零不是 允许。

小数部分是小数点后跟一位或多位数字。

指数部分以大写或小写字母E开头,
后面可以跟一个加号或减号。 E 和可选
符号后跟一个或多个数字。

不能表示为数字序列的数值
(例如 Infinity 和 NaN)是不允许的。

鉴于上述情况,{"my_double":3,2} 之类的内容不是有效的 JSON。 {"my_double":3.2} 是。

解析 JSON 时,解析器会将数字存储为原始数据类型(intdouble)。然后,您的语言环境将使用将它们转换为字符串的常规方法正确显示它们; Integer.toString(myInt),String.valueOf(myDouble)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-24
    • 1970-01-01
    • 2013-01-18
    • 2021-03-03
    • 1970-01-01
    • 2013-06-14
    • 1970-01-01
    相关资源
    最近更新 更多