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

标签 java json

我正在尝试将 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/

相关文章:

java - 在构造函数中创建具有数组特征的数据结构

没有解析的 Python JSON 键

java - 具有动态根 key 时如何反序列化 JSON

javascript - 无法获取包含javascript代码的json中php变量的返回值

java - 在 Java 中获取 Nashorn JsonObject

java - Flink Tumble Window 触发时间

java - 从 JPA 实体逆向工程 DDL

json - 1 个接口(interface),2 个包,相同的结构变量名称但不同的 json 命名约定

java - 正则表达式获取直到一个字符的值

java - Lucene 面试题