Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用jayway JsonPath解析Json时保持尾随零_Java_Json_Jsonpath_Jayway - Fatal编程技术网

Java 使用jayway JsonPath解析Json时保持尾随零

Java 使用jayway JsonPath解析Json时保持尾随零,java,json,jsonpath,jayway,Java,Json,Jsonpath,Jayway,我正在使用JaywayJSON path-2.4.0解析json。解析json时,如果json包含任何双精度值,则会截断尾随的零。例如,我有一个Json字符串,如下所示 {name:Sparker,value:60.10} 我的代码是: package com.test; import com.jayway.jsonpath.DocumentContext; import com.jayway.jsonpath.JsonPath; import java.math.BigDecimal; p

我正在使用JaywayJSON path-2.4.0解析json。解析json时,如果json包含任何双精度值,则会截断尾随的零。例如,我有一个Json字符串,如下所示

{name:Sparker,value:60.10}

我的代码是:

package com.test;

import com.jayway.jsonpath.DocumentContext;
import com.jayway.jsonpath.JsonPath;
import java.math.BigDecimal;

public class TestClas {

  public static void main(String[] args) {

    String value = "{\"name\" : \"Sparker\" , \"value\": 60.10}";
    DocumentContext docCtx = JsonPath.parse(value);
    JsonPath jsonPath = JsonPath.compile("$.value");
    Object result = docCtx.read(jsonPath);
    System.out.println(result);
  }
}

它只打印60.1,但我需要60.10。如何在不截断尾随零的情况下获得结果。

您没有指定类型-您只是在使用Object-因此它会自动选择Double。Double没有尾随零的概念:这是数字显示方式的一个方面


请参见

我想使我的类成为通用类。我想解析不同的Json路径,它返回不同的对象字符串、Int、List、Map等。这就是为什么要使用object。