使用 Java 从 JSON 文件中读取具有精确小数点的值
Reading values from JSON file with exact decimal points with Java
我有一个 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 文件读取为具有给定小数点的 JSON 对象?
一个解决方案是使用 Gson
和 JsonObject
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}
我有一个 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 文件读取为具有给定小数点的 JSON 对象?
一个解决方案是使用 Gson
和 JsonObject
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}