Chilkat json 输出带逗号的十进制数

问题描述

在 chilkat activeX(我的版本:9.5.0.86)中,当我创建具有数字属性的对象时,.emit() 方法返回带有数字的 JSON 字符串,其中小数部分用逗号分隔。这取决于我的区域设置 here in Control panel。但这不应该依赖于此,因为这个 JSON RFC: https://www.ietf.org/rfc/rfc4627.txt 说数字必须始终用点分隔。

代码(在 VFP 中)

oJson = CreateObject('Chilkat_9_5_0.JsonObject')
oJson.AddNumberAt(-1,"test1",12.3)
?oJson.Emit()

当我在设置中设置逗号时,此代码输出为: {"test1":12,3}

当我设置点时,输出是: {"test1":12.3}

有没有办法设置 chilkat 以始终​​获取带点的数字? 看来,问题出在 AddNumberAt 方法上,因为当我使用 load 方法获取 json 时

解决方法

UpdateNumber 的第二个参数应该是一个字符串。 见https://chilkatsoft.com/refdoc/xChilkatJsonObjectRef.html#method81

您传递了一个浮点数,它被您的编程语言强制转换为字符串,而强制是导致使用逗号的原因。