Java中利用gson解析Json实例教程

下面我将为您详细讲解“Java中利用gson解析Json实例教程”的完整攻略。

Java中利用gson解析Json实例教程

什么是gson

Gson是Google公司发布的一套Java对象序列化和反序列化库。可以将JSON格式的字符串转换为Java对象,也可以将Java对象转换为JSON格式的字符串。

在Java中使用gson可以方便的进行Json解析,使用简单高效,实用性强。

基本用法

  1. 导入gson的jar包

在项目的pom.xml文件中加入以下依赖:

<!-- Gson -->
<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.5</version>
</dependency>
  1. 使用gson解析json

下面是一个简单的JSON示例:

{
    "name": "John Smith",
    "age": 28,
    "email": "john.smith@gmail.com"
}

Java代码如下:

import com.google.gson.Gson;
import java.util.Map;

public class JsonParser {

    public static void main(String[] args) {

        String json = "{\"name\":\"John Smith\",\"age\":28,\"email\":\"john.smith@gmail.com\"}";

        Gson gson = new Gson();

        Map<String, Object> data = gson.fromJson(json, Map.class);

        String name = (String) data.get("name");
        int age = (int) data.get("age");
        String email = (String) data.get("email");

        System.out.println("Name: " + name);
        System.out.println("Age: " + age);
        System.out.println("Email: " + email);
    }
}

上述代码中,从String类型的json数据中解析出了Map类型的数据。可以通过Map.get()方法获取指定的属性值,从而完成解析。

示例

下面通过两个具体的示例来说明如何使用gson解析Json数据。

示例一

假设有如下的JSON数据:

{
  "id":100001,
  "name":"电视",
  "price":4999.0,
  "des":"4k高清,55寸屏幕"
}

Java代码如下:

import com.google.gson.Gson;

public class Product {

    private int id;
    private String name;
    private double price;
    private String des;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    public String getDes() {
        return des;
    }

    public void setDes(String des) {
        this.des = des;
    }

    @Override
    public String toString() {
        return "Product{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", price=" + price +
                ", des='" + des + '\'' +
                '}';
    }

    public static void main(String[] args) {
        String json = "{\"id\":100001,\"name\":\"电视\",\"price\":4999.0,\"des\":\"4k高清,55寸屏幕\"}";

        Gson gson = new Gson();

        Product product = gson.fromJson(json, Product.class);

        System.out.println(product);
    }
}

上述代码中,通过Product类与JSON数据进行映射,使用fromJson方法将JSON数据转换为Product对象,输出Product对象的toString方法的结果,即完成了JSON的解析。

示例二

假设有如下的JSON数据:

[
  {
    "id":100001,
    "name":"电视",
    "price":4999.0,
    "des":"4k高清,55寸屏幕"
  },
  {
    "id":100002,
    "name":"手机",
    "price":2499.0,
    "des":"骁龙855,8GB内存"
  },
  {
    "id":100003,
    "name":"电脑",
    "price":7999.0,
    "des":"i7处理器,16GB内存"
  }
]

Java代码如下:

import com.google.gson.Gson;
import java.util.ArrayList;

public class ProductList {

    private ArrayList<Product> products;

    public ArrayList<Product> getProducts() {
        return products;
    }

    public void setProducts(ArrayList<Product> products) {
        this.products = products;
    }

    @Override
    public String toString() {
        return "ProductList{" +
                "products=" + products +
                '}';

    }

    public static void main(String[] args) {

        String json = "[\n" +
                "  {\n" +
                "    \"id\":100001,\n" +
                "    \"name\":\"电视\",\n" +
                "    \"price\":4999.0,\n" +
                "    \"des\":\"4k高清,55寸屏幕\"\n" +
                "  },\n" +
                "  {\n" +
                "    \"id\":100002,\n" +
                "    \"name\":\"手机\",\n" +
                "    \"price\":2499.0,\n" +
                "    \"des\":\"骁龙855,8GB内存\"\n" +
                "  },\n" +
                "  {\n" +
                "    \"id\":100003,\n" +
                "    \"name\":\"电脑\",\n" +
                "    \"price\":7999.0,\n" +
                "    \"des\":\"i7处理器,16GB内存\"\n" +
                "  }\n" +
                "]";

        Gson gson = new Gson();

        ProductList productList = gson.fromJson(json, ProductList.class);

        System.out.println(productList);
    }
}

上述代码中,通过ProductList类与JSON数据进行映射,使用fromJson方法将JSON数据转换为ProductList对象,输出ProductList对象的toString方法的结果,即完成了JSON的解析。

以上就是Java中利用gson解析Json实例教程的详细攻略,希望能够对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java中利用gson解析Json实例教程 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • Go Java算法之Excel表列名称示例详解

    Go Java算法之Excel表列名称示例详解 概述 Excel中的列名称由大写字母组成,从”A”开始,到”Z”为止,然后是”AA”,”AB”…依此类推。本文将详细说明如何将数字转换为相应的Excel表列名称。 算法分析 可将数字转换为Excel表列名称的基本思路是将10进制数转换为26进制数,并将每个数字转换为相应的大写字母。 将给定数字减1,以便找出…

    C 2023年5月22日
    00
  • 2019年滴滴出行前端工程师面试题(附答案)

    下面是详细讲解“2019年滴滴出行前端工程师面试题(附答案)”的完整攻略。 理解面试题意思 首先,要认真阅读所有面试题目,并理解每个问题的意思。针对每个问题,需要理解问题的背景、要求和解决方案。在阅读问题时,可以结合实际场景或者经验,尝试通过自己的思考,预测和解答面试官可能会继续提问的问题。 例如,题目中的第一个问题:“如何实现一个模块加载器?”,我们可以针…

    C 2023年5月23日
    00
  • 谈谈C++学习之Pair的使用方法

    下面是关于C++学习之Pair的使用方法的完整攻略。 什么是Pair C++中的Pair是一种特殊的容器,用于将两个数据项组合成一对,具有类似于key-value的键值对结构,分别被称为first和second,可以用于较为简便的存储和访问数据。 使用方法 在使用Pair前需要引入头文件#include <utility>。 定义一个Pair 通…

    C 2023年5月22日
    00
  • Js的Array数组对象详解

    Js的Array数组对象详解 简介 在 JavaScript 中,Array 是一种重要的数据结构。简单来讲,数组就是一种存储一组数据的方式,这些数据可以是任意类型,包括数字、字符串、布尔值、对象等等。 而 Array 是一种对象,它是 JavaScript API 中自带的,具有一系列的方法和属性,可以方便地操作数组。 在本文中,我将详细介绍 Array …

    C 2023年5月23日
    00
  • 一文带你搞懂C语言预处理宏定义

    一文带你搞懂C语言预处理宏定义 什么是预处理宏定义 预处理宏定义是用宏定义指令将某个字符序列映射为另一个字符序列的编程技巧。在源代码编译之前,编译器会通过一个预处理器扫描源代码文件,将其中预处理宏定义的字符序列全部替换为对应的字符序列,这个过程称为宏展开。 预处理宏定义可以用来避免大量重复输入代码,增加代码的可维护性和可读性,同时也可以定义一些通用的常量或者…

    C 2023年5月23日
    00
  • C语言实现最小生成树构造算法

    C语言实现最小生成树构造算法攻略 最小生成树(Minimum Spanning Tree,MST)是一种求加权无向连通图的生成树的算法,其可以将连通图的n个顶点连接起来,形成一个权值最小的树。本文将介绍使用C语言实现最小生成树构造算法的攻略。 算法简介 其中,Kruskal算法和Prim算法是最常用的两个求解最小生成树的算法。 Kruskal算法 Krusk…

    C 2023年5月22日
    00
  • C语言返回字面量的地址

    C语言中,返回字面量的地址并不是一个安全的做法,因为字面量是常量,在程序执行期间是不会改变的。所以当返回字面量地址时,可能会导致地址被修改,从而发生严重的错误。但是,在某些特殊情况下,返回字面量的地址是有实际使用价值的。本文将详细讲解“C语言返回字面量的地址”的完整使用攻略。 1. 直接返回字面量地址 在C语言中,如果要直接将字面量作为返回值,可以使用以下语…

    C 2023年5月9日
    00
  • c++编写String类代码实例

    下面是详细讲解”C++编写String类代码实例”的攻略: 1. 什么是String类? String类是C++中封装了的字符串类,它提供了很多操作字符串的方法,如获取字符串长度、复制字符串、连接字符串、比较字符串等等。使用String类可以大大简化字符串操作的过程,提高代码可读性和可维护性。 2. String类的基本实现 2.1 类的定义 class S…

    C 2023年5月24日
    00
合作推广
合作推广
分享本页
返回顶部