如何从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
相关产品推荐
相关产品推荐

