网站优化

网站优化

Products

当前位置:首页 > 网站优化 >

学习Json转Object,轻松掌握编程技能!

GG网络技术分享 2025-11-22 15:39 0


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

啥是Json转Object?

轻巧松 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库来转?

这里有个优良用的库,叫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对象也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,太实用了!

有时候,我们需要把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,so easy!

有时候,我们还需要把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格式。

Json转Protobuf, 轻巧松实现跨语言传信

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对象。

Json转Properties, 许多种格式任你选

除了上面提到的格式,我们还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