gpt4 book ai didi

java - 将json从文件转换为java对象

转载 作者:行者123 更新时间:2023-12-01 14:05:34 32 4
gpt4 key购买 nike

我正在尝试将 json 从文本文件转换为 java 对象。

我已经尝试了 jackson 库,我放入了依赖项,什么没有。我的 json 文件有驼峰式大小写和下划线,这在运行我的程序时导致错误。这是我在与 gson 库相关时使用的代码,它不执行任何操作,无论是否包含我放置的代码,输出都相同。

  java.net.URL url = this.getClass().getResource("/test.json");
File jsonFile = new File(url.getFile());
System.out.println("Full path of file: " + jsonFile);
try
{

BufferedReader br = new BufferedReader(new FileReader("/test.json"));

// convert the json string back to object
DataObject obj = gson.fromJson(br, DataObject.class);

System.out.println(obj);

} catch (IOException e)
{
e.printStackTrace();
}

现在我也尝试了 jackson 库。这是我使用的代码
java.net.URL url = this.getClass().getResource("/test.json");
File jsonFile = new File(url.getFile());
System.out.println("Full path of file: " + jsonFile);

ObjectMapper mapper = new ObjectMapper();
mapper.setPropertyNamingStrategy(PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES);
InputStream is = Test_Project.class.getResourceAsStream("/test.json");
SampleDto testObj = mapper.readValue(is, SampleDto.class);
System.out.println(testObj.getCreatedByUrl());

我不知道该怎么做,

最佳答案

这个简单的例子就像一个魅力:
DTO

public class SampleDTO 
{
private String name;
private InnerDTO inner;
// getters/setters
}

public class InnerDTO
{
private int number;
private String str;
// getters/setters
}

Gson
  BufferedReader br = new BufferedReader(new FileReader("/tmp/test.json"));
SampleDTO sample = new Gson().fromJson(br, SampleDTO.class);

jackson
  InputStream inJson = SampleDTO.class.getResourceAsStream("/test.json");
SampleDTO sample = new ObjectMapper().readValue(inJson, SampleDTO.class);

JSON ( test.json )
{
"name" : "Mike",
"inner": {
"number" : 5,
"str" : "Simple!"
}
}

关于java - 将json从文件转换为java对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18638229/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com