返回顶部
首页 > 资讯 > 后端开发 > Python >如何使用GSON解析JSON数据
  • 254
分享到

如何使用GSON解析JSON数据

2024-04-02 19:04:59 254人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录添加依赖JSON数据介绍GsonFORMat@SerializedName注解Gson的使用具体实例GSON是谷歌提供的一个开源库,可以用来解析jsON数据 添加依赖 不过GSO

GSON是谷歌提供的一个开源库,可以用来解析jsON数据

添加依赖

不过GSON并没有被添加到Android官方的api中,所以如果要使用这个开源库,我们就要先添加依赖,编辑app/build.gradle文件,

在dependencies闭包中添加如下内容:

implementation 'com.Google.code.gson:gson:2.7'

JSON数据介绍

JSON数据分为两种,对象和数组,用{ }括起来的是对象,用[ ]括起来的是数组。

对象:

	{
            "user": "user1",
            "pwd": "123456"
	}

此处是一个JSON对象,里面有两个字段,分别是user和pwd。

数组:

[
	{"user": "user1",
	  "pwd": "123456"},
	  
	  {"user": "user2",
	  "pwd": "123456"}
]

此处是一个JSON数组,数组里面包含两个对象,每个对象包含两个字段。

字段和数组

{
        "user": "user1",
        "pwd": "123456",
            
        "jsonArray": [
			 {"user": "user1",
	 	      "pwd": "123456"},
	  
	 	     {"user": "user2",
	 		 "pwd": "123456"}
						],
						
			"result": "成功"			
}

此处是一个JSON对象,里面包含了字段和数组。

在实际情况中,一般都是一个JSON对象里面有数组和其它字段,或者是很多的嵌套,我们只需要一层一层的去解析就可以了。

GsonFormat

Gson是采用对象映射的方式,所以我们要为JSON数据创建一个Java对象来与之对应。

我们可以使用GsonFormat插件,迅速的将JSON数据转换成Java对象,使用方法如下:

1、安装好GsonFormat插件

2、新建一个类,在类里的空白处按Alt+S键,并将要转换的JSON数据复制进去,界面如下所示:

注意:自动生成的时候,内部类可能会是静态的,手动把内部类的static去掉。

@SerializedName注解

由于JSON中的一些字段可能不太适合直接作为Java字段来命名,因此这里使用了@SerializedName注解的方式来让JSON字段和Java字段之间建立映射关系。

例:

此处的Test类为JSON数据的一个映射类,而USER和PWD为JSON数据中的两个字段,很明显,这两个字段的名字不适合做变量名,所以使用@SerializedName注解的方式来让USER和user建立映射关系,PWD和passWord建立映射关系。

Gson的使用

解析JSON对象

Gson gson = new Gson();
User user = gson.fromJson(jsonData, User.class);

此处的User类是JSON数据的一个映射类,jsonData是JSON数据,注意:此处是一个字符串,所有的JSON数据都放在这个字符串中,一般为服务器返回的数据。

解析JSON数组

 Gson gson = new Gson();
 List<User> userList = gson.fromJson(jsonData, new TypeToken<User>(){}.getType());

因为是解析JSON数组,所以我们要用一个List来存放这个数组,List中的每一个对象就是JSON数组中的每一个元素。

具体实例

要解析的JSON数据:

{
        "user": "user1",
        "pwd": "123456",
            
        "jsonArray": [
			 {"user": "user1",
	 	      "pwd": "123456"},
	  
	 	     {"user": "user2",
	 		 "pwd": "123456"}
						],
						
			"result": "成功"			
}

映射的Java类:

public class Data {
    
    private String user;
    private String pwd;
    private String result;
    private List<JsonArrayBean> jsonArray;
    public String getUser() {
        return user;
    }
    public void setUser(String user) {
        this.user = user;
    }
    public String getPwd() {
        return pwd;
    }
    public void setPwd(String pwd) {
        this.pwd = pwd;
    }
    public String getResult() {
        return result;
    }
    public void setResult(String result) {
        this.result = result;
    }
    public List<JsonArrayBean> getJsonArray() {
        return jsonArray;
    }
    public void setJsonArray(List<JsonArrayBean> jsonArray) {
        this.jsonArray = jsonArray;
    }
    public class JsonArrayBean {
        
        private String user;
        private String pwd;
        public String getUser() {
            return user;
        }
        public void setUser(String user) {
            this.user = user;
        }
        public String getPwd() {
            return pwd;
        }
        public void setPwd(String pwd) {
            this.pwd = pwd;
        }
    }
}

解析的方法:

private void parseJSONData(String jsonData) {
        Gson gson = new Gson();
        Data data = gson.fromJson(jsonData, Data.class);
        // data就是整个JSON数据映射的一个对象
        String result = data.getResult(); // 取result字段的值
        String pwd = data.getPwd();   // 取pwd字段的值
        String user = data.getUser();  // 取user字段的值
        // 因为jsonArray字段对应的是一个JSON数组,所以要用一个List来对应
        List<Data.JsonArrayBean> list = data.getJsonArray();
        //取值
        for (int i = 0; i < list.size(); i++) {
            Data.JsonArrayBean jsonArrayBean = list.get(i);
            String user1 = jsonArrayBean.getUser();
            String pwd1 = jsonArrayBean.getPwd();
        }
    }

此处没有给出网络通信的代码,只给出了解析JSON数据的代码。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: 如何使用GSON解析JSON数据

本文链接: https://lsjlt.com/news/166351.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何使用GSON解析JSON数据
    目录添加依赖JSON数据介绍GsonFormat@SerializedName注解Gson的使用具体实例GSON是谷歌提供的一个开源库,可以用来解析JSON数据 添加依赖 不过GSO...
    99+
    2024-04-02
  • 怎么使用GSON解析JSON数据
    使用GSON解析JSON数据的步骤如下:1. 添加GSON库的依赖:在项目的build.gradle文件中添加以下依赖:```jav...
    99+
    2023-08-18
    GSON JSON
  • Android中使用Gson解析JSON数据的两种方法
    Json是一种类似于XML的通用数据交换格式,具有比XML更高的传输效率. 从结构上看,所有的数据(data)最终都可以分解成三种类型: 第一种类型是标量(scalar),也就...
    99+
    2022-06-06
    gson解析json json数据 JSON 方法 gson Android
  • gson怎么解析json嵌套数组
    使用Gson解析嵌套数组的JSON,需要使用嵌套的Java对象来表示JSON结构。下面是一个示例代码,演示了如何使用Gson解析嵌套...
    99+
    2023-08-16
    gson json
  • Android之解析JSON数据示例(android原生态,FastJson,Gson)
    1.json网页代码 <%@ page language="java" contentType="text/plain; charset=UTF-8" pageEn...
    99+
    2022-06-06
    json数据 JSON 示例 fastjson gson Android
  • Android解析JSON格式数据的两种方式(JSONObject和Gson)
    目录Json数据JSONObjectGSON添加依赖实际操作实体类总结Json数据 接下来主要学习在Android中使用两种解析方式:JSONObject和Gson。 JSONObj...
    99+
    2024-04-02
  • Java中利用gson解析Json实例教程
    前言本文主要跟大家介绍了关于Java用gson解析Json的相关内容,分享出来供大家参考学习,需要的朋友们下面来一起看看吧。json数据{ "resultcode": "200", "reason": "successed!", "resu...
    99+
    2023-05-31
    java gson 解析json
  • 使用nodejs解析json数据
    目录nodejs解析json数据第一第二第三第四node.js解析本地json从文件读取json解析json字符串为json对象扩展nodejs解析json数据 nodejs是服务器...
    99+
    2024-04-02
  • esp8266如何解析json数据
    这篇文章主要介绍了esp8266如何解析json数据的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇esp8266如何解析json数据文章都会有所收获,下面我们一起来看看吧。#include <A...
    99+
    2023-06-29
  • PHP如何解析JSON数据
    本文小编为大家详细介绍“PHP如何解析JSON数据”,内容详细,步骤清晰,细节处理妥当,希望这篇“PHP如何解析JSON数据”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。什么是JSON?JSON是一种标准的轻量级...
    99+
    2023-06-30
  • java如何解析json数据
    Java可以使用Json库来解析JSON数据。以下是使用Jackson库来解析JSON数据的示例代码:1. 导入Jackson库的依...
    99+
    2023-08-24
    java
  • Python使用JSON库解析JSON数据的方法
    目录1 如何在网页中获取 JSON 数据?2 Python 内置的 JSON 库1 如何在网页中获取 JSON 数据? 打开一个具有动态渲染的网页,按 F12 打开浏览器开发工具,点...
    99+
    2024-04-02
  • 如何在php中解析json数据
    如何在php中解析json数据?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。php的框架有哪些php的框架:1、Laravel,Laravel是一款免费并且开源...
    99+
    2023-06-14
  • 使用gin解析json格式数据时出错如何解决
    使用gin解析json格式数据时出错如何解决?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。写的接口给测试测试,现在还没有页面,直接测试接口。使用c.BindJSON(&...
    99+
    2023-06-14
  • Ajax中如何解析json格式数据
    在Ajax中,可以使用`JSON.parse()`方法来解析JSON格式的数据。示例代码如下:```javascriptvar xm...
    99+
    2023-09-04
    Ajax json
  • 如何使用 cURL 在 PHP 中获取 JSON 数据和解码 JSON 数据
    在本文中,我们将介绍在 PHP 中使用 cURL 获取 JSON 数据和解码 JSON 数据的方法。 使用 cURL 函数 在 PHP 中使用 cURL 函数获取 JSON 数据并解码...
    99+
    2024-02-27
  • android解析JSON数据
    JSONObject的使用  一、 JSON对象的使用: String content = "{'username': 'linux', 'password': '...
    99+
    2022-06-06
    json数据 JSON Android
  • Python3 JSON 数据解析
    JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 Python3 中可以使用 json 模块来对 JSON 数据进行编解码,它包含了两个函数: ...
    99+
    2023-01-31
    数据 JSON
  • 使用bejson来解析和查看json数据
    要使用bejson来解析和查看JSON数据,可以按照以下步骤进行操作:1. 首先,打开bejson的网站(https://www.b...
    99+
    2023-09-08
    json
  • 使用Python解析JSON数据的基本方
    Python的json模块提供了一种很简单的方式来编码和解码JSON数据。 其中两个主要的函数是 json.dumps() 和 json.loads() , 要比其他序列化函数库如pickle的接口少得多。 下面演示如何将一个...
    99+
    2023-01-31
    数据 Python JSON
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作