Products
GG网络技术分享 2025-11-22 15:39 0
哇塞,你们晓得Json吗?就是那种轻巧量级的数据交换格式,在前后端分离开发里头可关键了。今天咱们就来讲讲怎么把Json字符串变成Java对象,听起来是不是hen酷炫?别急,跟着我一步步来保证你学会了就不会再迷路啦!

轻巧松 Json转Object就是把我们kan到的Json字符串,变成一个Java对象。就像把一段文字翻译成我们kan得懂的话一样,是不是有点意思?
举个例子, kankan这玩意儿Json字符串:
{ "name": "张三", "age": 25, "gender": "男"}
我们就Neng把它变成一个Java对象,比如这样:
public class Person {
private String name;
private int age;
private String gender;
}
这里有个优良用的库,叫Gson,是Google公司出的,用起来超级方便。我们用Gson来转Json字符串,就像用魔法一样轻巧松。
先说说 我们要导入Gson库,然后写个Java类,就像这样:
import com.google.gson.Gson;
public class JsonToObjectExample {
public static void main {
String jsonString = "{\"name\":\"张三\",\"age\":25,\"gender\":\"男\"}";
Gson gson = new Gson;
Person person = gson.fromJson;
System.out.println;
}
}
这段代码里我们用gson.fromJson方法把Json字符串变成了Person对象。是不是hen轻巧松?
有时候, Json字符串里的属性名和Java对象的属性名不一样,这时候我们就Neng用Gson的@SerializedName注解来帮忙。
比如 Json字符串里的属性名是巨大写的,而Java对象的属性名是细小写的,我们就Neng这样写:
import com.google.gson.Gson;
import com.google.gson.annotations.SerializedName;
public class Person {
@SerializedName
private String name;
@SerializedName
private int age;
@SerializedName
private String gender;
}
这样,Gson就Neng自动帮我们匹配上正确的属性名了。
有时候,我们还需要把JavaScript对象转成Java对象。别担心,Java的ScriptEngine对象Neng帮我们完成这玩意儿任务。
比如我们有这么一个JavaScript对象:
{ "name": "张三", "age": 25, "gender": "男" }
我们就Neng这样写Java代码:
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
public class JsonToObjectFromJavaScript {
public static void main throws ScriptException {
String json = "{ \"name\":\"张三\", \"age\":25, \"gender\":\"男\" }";
ScriptEngine engine = new ScriptEngineManager.getEngineByName;
String script = "Java.asJSONCompatible";
Object result = engine.eval;
System.out.println;
}
}
是不是hen神奇?
在Java中,属性名是区分巨大细小写的。Ru果Json字符串中的属性名称和Java对象中的属性名称巨大细小写不一致,那么在转化为Java对象时会出现问题。
不过我们Neng用GsonBuilder对象的setFieldNamingStrategy方法在转化时进行巨大细小写的转换。
比如 我们这样写:
import com.google.gson.FieldNamingStrategy;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.annotations.SerializedName;
public class Person {
private String name;
private int age;
private String gender;
}
public class JsonToObjectCaseInsensitive {
public static void main {
String jsonString = "{\"Name\":\"张三\",\"Age\":25,\"Gender\":\"男\"}";
GsonBuilder gsonBuilder = new GsonBuilder;
gsonBuilder.setFieldNamingStrategy {
@Override
public String translateName {
SerializedName annotation = field.getAnnotation;
if {
return annotation.value;
} else {
return field.getName.toLowerCase;
}
}
});
Gson gson = gsonBuilder.create;
Person person = gson.fromJson;
System.out.println;
}
}
这样,不管Json字符串里的属性名是巨大写还是细小写,GsondouNeng正确地转换成Java对象了。
有时候,我们需要把Json数据导出到Excel中。用Apache POI库Nenghen方便地实现这玩意儿功Neng。
比如 我们有这么一段Json数据:
import com.google.gson.Gson;
import org.apache.poi.hssf.usermodel.*;
import java.io.FileOutputStream;
import java.util.*;
public class JsonToExcel {
public static void main throws Exception {
String jsonString = "";
Gson gson = new Gson;
Person persons = gson.fromJson;
HSSFWorkbook workbook = new HSSFWorkbook;
HSSFSheet sheet = workbook.createSheet;
HSSFRow row0 = sheet.createRow;
HSSFCell cell0 = row0.createCell;
cell0.setCellValue;
HSSFCell cell1 = row0.createCell;
cell1.setCellValue;
HSSFCell cell2 = row0.createCell;
cell2.setCellValue;
for {
HSSFRow row = sheet.createRow;
HSSFCell cell3 = row.createCell;
cell3.setCellValue);
HSSFCell cell4 = row.createCell;
cell4.setCellValue);
HSSFCell cell5 = row.createCell;
cell5.setCellValue);
}
FileOutputStream fos = new FileOutputStream;
workbook.write;
fos.close;
}
}
这样,我们就把Json数据成功地导出到Excel文件里了。
有时候,我们还需要把Json数据转化为XML格式。用Jackson库Nenghen方便地实现这玩意儿功Neng。
{ "name": "张三", "age": 25, "gender": "男" }
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.databind.module.SimpleModule;
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
import java.io.IOException;
import java.util.*;
public class JsonToXml {
public static void main throws IOException {
String jsonString = "{\"name\":\"张三\",\"age\":25,\"gender\":\"男\"}";
ObjectMapper objectMapper = new ObjectMapper;
SimpleModule xmlModule = new SimpleModule;
xmlModule.addSerializer);
objectMapper.registerModule;
objectMapper.enable;
XmlMapper xmlMapper = new XmlMapper;
String xmlString = xmlMapper.writeValueAsString);
System.out.println;
}
}
这样,我们就把Json数据成功地转换成了XML格式。
Protocol Buffers是Google公司开发的一种轻巧量级的数据交换格式,用它Neng在不同的语言之间进行数据传信。
比如 我们有这么一个.proto文件定义了Person数据类型:
syntax = "proto3";
message Person {
string name = 1;
int32 age = 2;
string gender = 3;
}
import com.google.protobuf.InvalidProtocolBufferException;
public class JsonToProtobuf {
public static void main throws InvalidProtocolBufferException {
String jsonString = "{\"name\":\"张三\",\"age\":25,\"gender\":\"男\"}";
PersonProto.Person.Builder personBuilder = PersonProto.Person.newBuilder;
PersonProto.Person person = personBuilder.mergeFrom).build;
System.out.println;
}
}
这样,我们就把Json字符串成功地转换成了Protobuf对象。
除了上面提到的格式,我们还Neng将Json转化为Properties格式。
{ "name": "张三", "age": 25, "gender": "男" }
import com.google.gson.Gson;
import java.util.Properties;
public class JsonToProperties {
public static void main {
String jsonString = "{\"name\":\"张三\",\"age\":25,\"gender\":\"男\"}";
Gson gson = new Gson;
Properties properties = gson.fromJson;
System.out.println;
}
}
这样,我们就把Json字符串转化为了Properties对象。
通过学Json转Object, 我们不仅Neng够轻巧松掌握编程技Neng,还Neng在开发过程中geng加高大效地处理数据。希望这篇文章Neng帮到你们,让我们一起在编程的道路上越走越远吧!
Demand feedback