java - 从 InputStreamReader 将 Json 转换为 gson

标签 java json spring gson

我从 URL 得到了一个 JSON,它看起来像:|

   {"total_users_count":1,
     "users":[
              {"first_name":"jan",
               "email":"admin@localhost",
               "city":null,
               "position":"",
               "experience_years":"5 - 8",
               "salary_expectations":"0 - 7300"}
              // ,{ ... }
            ]
    }

在这个响应中会有更多的用户。我的代码:

URLConnection urlConnection = url.openConnection();
    urlConnection.setRequestProperty("Authorization", "Basic " + authStringEnc);
    InputStream is = urlConnection.getInputStream();
    InputStreamReader isr = new InputStreamReader(is);
    System.out.println(is.toString());
    System.out.println(isr.toString());



   CandidateDTO candidateDTO = new Gson().fromJson(isr, CandidateDTO.class);

    // using the deserialized object
    System.out.println(candidateDTO.total_users_count);
    System.out.println(candidateDTO.first_name);
    System.out.println(candidateDTO.email);
    System.out.println(candidateDTO.city);
    System.out.println(candidateDTO.position);
    System.out.println(candidateDTO.experience_years);
    System.out.println(candidateDTO.salary_expectations);


private class CandidateDTO {
    int total_users_count;
    Map <String, String> first_name;
    String email;
    String city;
    String position;
    Integer experience_years;
    Integer salary_expectations;

}

不幸的是,这段代码不起作用,我无法将用户添加到我的 map 。这有什么问题吗?

最佳答案

users 是一个集合(对象数组),因此您需要像这样创建一个集合。

public class CandidateDTO {
    int total_users_count;
    List<User> users = new ArrayList<User>();
    //Set<User> users = new HashSet<User>();
}
public class User{
    String first_name;
    String email;
    String city;
    String position;
    String experience_years;
    String salary_expectations;
}

关于java - 从 InputStreamReader 将 Json 转换为 gson,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46605160/

相关文章:

java - android中的访问/数据文件夹文件

java - 使用 64 位 Java VM 运行 ant 会导致无法映射的 UTF-8 字符

json - 在 JSONObject Swift 中检查键

javascript - 如何在 Node.js 中从 JSON 文件创建对象

java - 使用 Spring 的 ResourceDatabasePopulator 导入 MySQL 表定义转储

java - 无法在 Spring Boot 中禁用 CSRF 安全性

java - 文件对象转字节数组-android开发

java - DataService 类的 findAll 方法仅返回 100 个实体

jquery - 将匹配 select2 中的无结果更改为最接近的结果

spring - 我们可以为 filterChainProxy 中的单个过滤器链提供多种模式吗