• <small id='N1LQn'></small><noframes id='N1LQn'>

  • <i id='N1LQn'><tr id='N1LQn'><dt id='N1LQn'><q id='N1LQn'><span id='N1LQn'><b id='N1LQn'><form id='N1LQn'><ins id='N1LQn'></ins><ul id='N1LQn'></ul><sub id='N1LQn'></sub></form><legend id='N1LQn'></legend><bdo id='N1LQn'><pre id='N1LQn'><center id='N1LQn'></center></pre></bdo></b><th id='N1LQn'></th></span></q></dt></tr></i><div id='N1LQn'><tfoot id='N1LQn'></tfoot><dl id='N1LQn'><fieldset id='N1LQn'></fieldset></dl></div>

        • <bdo id='N1LQn'></bdo><ul id='N1LQn'></ul>

      1. <legend id='N1LQn'><style id='N1LQn'><dir id='N1LQn'><q id='N1LQn'></q></dir></style></legend>
        <tfoot id='N1LQn'></tfoot>
      2. 在 Gson 双序列化中关闭科学记数法

        时间:2023-09-29

        1. <legend id='kefbf'><style id='kefbf'><dir id='kefbf'><q id='kefbf'></q></dir></style></legend>
            <tbody id='kefbf'></tbody>

        2. <i id='kefbf'><tr id='kefbf'><dt id='kefbf'><q id='kefbf'><span id='kefbf'><b id='kefbf'><form id='kefbf'><ins id='kefbf'></ins><ul id='kefbf'></ul><sub id='kefbf'></sub></form><legend id='kefbf'></legend><bdo id='kefbf'><pre id='kefbf'><center id='kefbf'></center></pre></bdo></b><th id='kefbf'></th></span></q></dt></tr></i><div id='kefbf'><tfoot id='kefbf'></tfoot><dl id='kefbf'><fieldset id='kefbf'></fieldset></dl></div>
            <tfoot id='kefbf'></tfoot>
            • <small id='kefbf'></small><noframes id='kefbf'>

                <bdo id='kefbf'></bdo><ul id='kefbf'></ul>

                  本文介绍了在 Gson 双序列化中关闭科学记数法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  当我使用 Gson 序列化一个包含接近零的双精度值的对象时,它使用的是科学 E 符号:

                  When I use Gson to serialize an Object that contains a double value close to zero it is using the scientific E-notation:

                  {"doublevaule":5.6E-4}
                  

                  如何告诉 Gson 生成

                  How do I tell Gson to generate

                  {"doublevaule":0.00056}
                  

                  相反?我可以实现一个自定义的 JsonSerializer,但它返回一个 JsonElement.我将不得不返回一个 JsonPrimitive,其中包含一个无法控制其序列化方式的 double.

                  instead? I can implement a custom JsonSerializer, but it returns a JsonElement. I would have to return a JsonPrimitive containing a double having no control about how that is serialized.

                  谢谢!

                  推荐答案

                  为什么不为 Double 提供一个新的序列化器?(您可能必须重写您的对象以使用 Double 而不是 double).

                  Why not provide a new serialiser for Double ? (You will likely have to rewrite your object to use Double instead of double).

                  然后在序列化器中,您可以转换为 BigDecimal,并使用比例等.

                  Then in the serialiser you can convert to a BigDecimal, and play with the scale etc.

                  例如

                      GsonBuilder gsonBuilder = new GsonBuilder();
                      gsonBuilder.registerTypeAdapter(Double.class,  new JsonSerializer<Double>() {
                          @Override
                          public JsonElement serialize(final Double src, final Type typeOfSrc, final JsonSerializationContext context) {
                              BigDecimal value = BigDecimal.valueOf(src);
                  
                              return new JsonPrimitive(value);
                          }
                      });
                  
                      gson = gsonBuilder.create();
                  

                  上面将呈现(比如)9.166666E-60.000009166666

                  The above will render (say) 9.166666E-6 as 0.000009166666

                  这篇关于在 Gson 双序列化中关闭科学记数法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:System.out.printf 与 System.out.format 下一篇:Java:如何以 ISO 8601 SECOND 格式获取当前日期

                  相关文章

                  最新文章

                  <small id='EyYB6'></small><noframes id='EyYB6'>

                    <tfoot id='EyYB6'></tfoot>
                    1. <legend id='EyYB6'><style id='EyYB6'><dir id='EyYB6'><q id='EyYB6'></q></dir></style></legend>

                        <bdo id='EyYB6'></bdo><ul id='EyYB6'></ul>

                      <i id='EyYB6'><tr id='EyYB6'><dt id='EyYB6'><q id='EyYB6'><span id='EyYB6'><b id='EyYB6'><form id='EyYB6'><ins id='EyYB6'></ins><ul id='EyYB6'></ul><sub id='EyYB6'></sub></form><legend id='EyYB6'></legend><bdo id='EyYB6'><pre id='EyYB6'><center id='EyYB6'></center></pre></bdo></b><th id='EyYB6'></th></span></q></dt></tr></i><div id='EyYB6'><tfoot id='EyYB6'></tfoot><dl id='EyYB6'><fieldset id='EyYB6'></fieldset></dl></div>