gson 用Java从JSON文件中阅读精确到小数点的值

vxqlmq5t  于 2022-11-06  发布在  Java
关注(0)|答案(1)|浏览(195)

我有一个json文件如下。

{
    "name": "Smith",
    "Weight": 42.000,
    "Height": 160.050 
   }

我已经编写了下面的java代码来读取这个文件。

import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
import java.io.FileReader;
import java.io.IOException;

public class TestFileReaderApplication {

    public static void main(String[] args) {
        readFile();
    }

    public static void readFile()  {
        JSONParser jsonParser = new JSONParser();
        JSONObject requestBody = null;
        try(FileReader reader = new FileReader("C:\\Users\\b\\Desktop\\test.json")){
            requestBody = (JSONObject) jsonParser.parse(reader);
            System.out.println(requestBody);
        } catch (IOException | ParseException e) {
            e.printStackTrace();
        }
    }
}

输出如下所示:

{"name":"Smith","Height":160.05,"Weight":42.0}

调试程序时,JSON将160.050读作160.05,将42.000读作42.0

我需要体重和身高值的小数点,因为它是。小数点的数量可以改变。我如何读取一个json文件作为一个JSONObject与给定的小数点?

wmvff8tz

wmvff8tz1#

解决方案是使用GsonJsonObject

import com.google.gson.Gson;
import com.google.gson.JsonObject;

try(FileReader reader = new FileReader("C:\\Users\\b\\Desktop\\test.json")){
            Gson gson = new Gson();
            JsonObject jsonObject = gson.fromJson(reader, JsonObject.class);
            System.out.println(jsonObject);
        } catch (IOException e) {
        e.printStackTrace();
    }

输出

{"name":"Smith","Weight":42.000,"Height":160.050}

相关问题