2024-05-18 10:20:11 版本 : JSON字符串和java复杂对象互转
作者: 系统管理员1 于 2024年05月18日 发布在分类 / 技术研发 / 编程脚本 下,并于 2024年05月18日 编辑
 历史版本

备注 修改日期 修改人
内容更新 2024-05-18 10:22:00[当前版本] 系统管理员1
创建版本 2024-05-18 10:20:11 系统管理员1

在Java中,对象转换为JSON字符串以及JSON字符串转换为Java对象是非常常见的操作,通常我们会使用一些库来帮助我们完成这一过程。最常用的两个库是Gson和Jackson。

使用Gson库

  1. 添加依赖:首先,确保你的项目中已经加入了Gson库的依赖。如果你使用的是Maven,可以在pom.xml中添加如下依赖:

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.9</version>
</dependency>

对象与JSON互转

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.Map;

public class GsonToJsonExample {

    // 假设KnowPointStatical是一个具有相应getter和setter方法的Java Bean
    static class KnowPointStatical {
        String pointName;
        int totalQuestions;
        // 其他属性及getter和setter省略
    }

    public static void main(String[] args) {
        String jsonString = "{"
                + "\"Math\": {\"totalQuestions\": 50},"
                + "\"English\": {\"totalQuestions\": 45},"
                + "\"Science\": {\"totalQuestions\": 60}"
                + "}";

        Gson gson = new Gson();

        // 定义类型Token来指示目标类型
        Type type = new TypeToken<Map<String, KnowPointStatical>>(){}.getType();

        try {
            // 直接将JSON字符串转换为指定类型的Map
            Map<String, KnowPointStatical> map = gson.fromJson(jsonString, type);

            // 打印Map内容
            for (Map.Entry<String, KnowPointStatical> entry : map.entrySet()) {
                System.out.println("Subject: " + entry.getKey() + ", Total Questions: " + entry.getValue().getTotalQuestions());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}


历史版本-目录  [回到顶端]
    wcp知识库系统-京ICP备15024440号-1 -V 5.1.9 -wcp