0

POST rest 呼び出しの本体データとして使用する前に、変更する必要があるいくつかのデータと構成パラメーターを含むファイルがあります。

だから私はスラーパーを使って設定値を取得しています

JsonSlurper slurper = new JsonSlurper()
def inputFile = new File("file.json")
def parsedInput = slurper.parse(inputFile)

次に、目的の構成パラメーターを変更します

parsedInput.config.id = 1

そして、変更された入力ファイルが一時ファイルに書き込まれます

def tempFile = new File("temp.json")
tempFile.write(JsonOutput.toJson(parsedInput))

出力ファイルが入力ファイルの 3 倍の大きさであることに気付いたときは、かなり驚きました。内容を確認したところ、slurper が float の精度を変更したようです。

変更前

0.145,
0.144,
0.145,

修正後

0.1459999999999999908961711980737163685262203216552734375, 
0.1449999999999999900079927783735911361873149871826171875, 
0.1459999999999999908961711980737163685262203216552734375

それを修正する方法はありますか?

編集 1: いくつかの入力データを追加

http://wklej.org/hash/4de6639a5bf/txt/

4

1 に答える 1

0

Groovy のバージョンを確認してください。2011 年末までに修正される予定です ( https://issues.apache.org/jira/browse/GROOVY-5129 ) 。

于 2016-04-06T10:55:46.523 に答える