376  
查询码: 00000822
JSON字符串和java复杂对象互转
作者: 系统管理员1 于 2024年05月18日 发布在分类 / 技术研发 / 编程脚本 ,于 2024年05月18日 编辑

在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>

java对象转JSON

import com.google.gson.Gson;

public class Main {
    static class Person {
        String name;
        int age;

        // 构造方法、getters、setters省略
    }

    public static void main(String[] args) {
        Person person = new Person();
        person.setName("Tom");
        person.setAge(30);

        Gson gson = new Gson();
        String json = gson.toJson(person);
        System.out.println(json); // 输出:{"name":"Tom","age":30}
    }
}

JSON转java对象

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();
        }
    }
}


0人参与


 历史版本

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

  目录
    wcp知识库系统-京ICP备15024440号-1 -V 5.2.0 -wcp