You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从JSON字符串缓冲区创建Java对象实例?

将JSON字符串转换为Java Rate对象实例

在Java中,常用Jackson或Gson这两个JSON处理库实现JSON到Java对象的转换,以下是具体实现方案:

前提说明

你定义的Rate类使用了Lombok的@Data注解,该注解会自动生成getter、setter、无参构造方法、toString等方法,完全满足JSON库的反序列化要求,无需额外编写这些方法。


方案一:使用Jackson库

1. 引入依赖

如果使用Maven,在pom.xml中添加Jackson依赖:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.15.2</version> <!-- 使用最新稳定版即可 -->
</dependency>

如果使用Gradle,在build.gradle中添加:

implementation 'com.fasterxml.jackson.core:jackson-databind:2.15.2'

2. 转换代码实现

import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;

public class JsonToRateExample {
    public static void main(String[] args) {
        String jsonStr = "{\n" +
                "  \"currency\": \"BRL\",\n" +
                "  \"buyRate\": 4.18390000,\n" +
                "  \"midRate\": 4.18390000,\n" +
                "  \"sellRate\": 4.18390000,\n" +
                "  \"conversionType\": \"D\"\n" +
                "}";

        ObjectMapper objectMapper = new ObjectMapper();
        try {
            Rate rate = objectMapper.readValue(jsonStr, Rate.class);
            System.out.println(rate);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

方案二:使用Gson库

1. 引入依赖

Maven依赖:

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.10.1</version> <!-- 使用最新稳定版即可 -->
</dependency>

Gradle依赖:

implementation 'com.google.code.gson:gson:2.10.1'

2. 转换代码实现

import com.google.gson.Gson;

public class JsonToRateExample {
    public static void main(String[] args) {
        String jsonStr = "{\n" +
                "  \"currency\": \"BRL\",\n" +
                "  \"buyRate\": 4.18390000,\n" +
                "  \"midRate\": 4.18390000,\n" +
                "  \"sellRate\": 4.18390000,\n" +
                "  \"conversionType\": \"D\"\n" +
                "}";

        Gson gson = new Gson();
        Rate rate = gson.fromJson(jsonStr, Rate.class);
        System.out.println(rate);
    }
}

注意事项

  • JSON中的键名需与Rate类的字段名完全一致(大小写敏感),若需适配不同键名,可使用库的注解调整(如Jackson的@JsonProperty、Gson的@SerializedName)。
  • 两个库均能自动将JSON中的数字转换为BigDecimal类型,无需额外配置。

内容的提问来源于stack exchange,提问作者Grafana Next

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 15:27:32