【问题标题】:How to convert a Json String/Data to a Java Class?如何将 Json 字符串/数据转换为 Java 类?
【发布时间】:2021-04-29 13:33:24
【问题描述】:

我是 Android 和编程新手。我想用用户登录和用户位置跟踪器构建一个 Android 应用程序。将 Json 字符串转换为 Java 类的最简单方法是什么?

我的 Json 字符串:

【问题讨论】:

标签: java android json postman


【解决方案1】:

您可以通过三种方式实现这一目标:

  1. 使用 Gson 将字符串转换为 JSON 对象

Gson 是一个开源库,用于处理 Java 程序中的 JSON。使用 Gson 只需 2 行即可将 JSON 字符串转换为 Java 对象,如下所示:

Gson g = new Gson();
YourClass c = g.fromJson(jsonString, YourClass.class)

您还可以使用 toJson() 方法将 Java 对象转换为 JSON,如下所示

String str = g.toJson(c);


  1. 使用 JSON-Simple 将 JSON 字符串转换为 Java 对象 JSON-Simple 是另一个支持 JSON 解析和格式化的开源库。这个库的优点是体积小,非常适合 J2ME 和 Android 等内存受限环境。

JSONParser 解析器 = 新 JSONParser();
JSONObject json = (JSONObject) parser.parse(stringToParse);


  1. 字符串到 JSON - Jackson 示例 Jackson 是我猜想是 Java 世界中最流行的 JSON 解析库。以下单行将表示足球运动员的 JSON 字符串转换为表示球员的 Java 类:

YourClass obj = new ObjectMapper().readValue(jsonString, YourClass.class);

【讨论】:

    【解决方案2】:

    我使用的几种方法是:

    1. 使用杰克逊:

    ObjectMapper objectMapper = new ObjectMapper();
    Map map = mapper.readValue(json, UserDefinedClass.class);

    1. 使用 gson:gson 是一个开源的 Java 库,用于将 Java 对象序列化和反序列化为 JSON。在maven中导入库
       <dependency> 
          <groupId>com.google.code.gson</groupId> 
          <artifactId>gson</artifactId> 
          <version>2.6.2</version>     
       </dependency>
    
    private static Organisation getOrganisationObject() { 
        String organisation = "{\"organisation_name\": \"TataMotors\",
            \"Employee\" : \"2000\"}"; 
    
        Gson gson = new Gson(); 
        Organisation orgObject = gson.fromJson(OrganisationJson, 
                            Organisation.class); 
    
        return orgObject; 
    } 
    

    【讨论】:

      【解决方案3】:

      你可以使用 ObjectMapper

      import com.fasterxml.jackson.databind.ObjectMapper;
      
      public class YourClassDao {
      
      private ObjectMapper objectMapper = new ObjectMapper();
      
        public YourClass load(String json) throws IOException {
          return objectMapper.readValue(
              json, YourClass.class);
        }
      
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-05-19
        • 2019-11-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-01
        • 1970-01-01
        相关资源
        最近更新 更多