如何正确解析Azure数据工厂中的JSON十进制类型?

mi7gmzs6  于 2023-04-22  发布在  其他
关注(0)|答案(1)|浏览(107)

在Azure SQL数据库中,我有一个表,其中包含一个具有JSON字符串的列,如下所示:

{"Id":"4b11c702-d4b2-47f4-a8d6-0b8ab9f53c99","Date":"2021-11-15T00:16:43.7300189+00:00","Source":"AtlasEarth","SourceTransactionId":"5ad129d3-2b79-44b1-b617-2d86d352003a","SourceTransactionType":"Rent","Amount":0.000000000000000111}

作为Azure数据流的一部分,我尝试解析该JSON字符串并将其一些属性放入一个复杂对象中。
解析对大多数部分都有效。但是,Amount列(从.Net decimal属性序列化而来)的格式不正确。

所以我的问题是,我如何才能得到正确格式的列?我尝试了float和double,两者都给出了相同的结果。
谢谢!

a11xaf1n

a11xaf1n1#

我怎样才能得到正确格式列?我尝试了float和double,结果都一样。

我在我的环境中尝试了类似的问题,并面临同样的问题。

已尝试解决此问题,但如果该值位于小数点后6位,则可能存在限制。将仅通过转换为科学通知来获取该值。

  • 我们不能将它转换为十进制,而直接在解析时,我们必须将其视为double
  • 在此之后,我们必须获取一个派生列,并使用toDecimal(jsondemo.Amount,20, 20)将值转换为十进制。

输出:-

请注意,它只将值转换为十进制,直到E-6。在此之后,它将只采用科学记数法。

相关问题