Json解析之gson

Gson解析json数据 json解析我们不陌生了,不过每次编写解析的代码时总是很头疼,一堆很无聊的代码,如果有50个接口那就得写50个相似的解析处理。其实谷歌和阿里很早就推出了解析json的工具包,谷歌的Json,阿里的FastJson,还有一个jackJson。有人说jackJson解析速度快,大数据时FastJson要比Json效率高,小数据时反之。不过我还是偏爱谷歌的Json,即使效率可能偏低,但是稳定性肯定没得说 阅读详情

app开发中少不了对json解析,android内置api对json解析过于繁琐。


Gson 相关 jar 包

下载地址:http://code.google.com/p/google-gson/

Gson 使用示例

复制代码
package cn.sunzn.gson;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import cn.sunzn.bean.Person;

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

public class GsonActivity extends Activity {

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        Gson gson = new Gson();

        /**
         * 将给定的 JSON 字符串转换成指定的类型对象
         */
        String json = "{\"name\":\"Tom\",\"age\":90}";
        Person person = gson.fromJson(json, Person.class);
        Log.e("GSON", person.toString());

        /**
         * 将给定的目标对象转换成 JSON 格式的字符串
         */
        String json_Person = gson.toJson(person);
        Log.e("GSON", json_Person);

        /**
         * 将给定的集合对象转换成 JSON 格式的字符串
         */
        ArrayList<Person> persons = new ArrayList<Person>();
        Collections.addAll(persons, new Person("tom", 10), new Person("jon", 20));
        String json_list = gson.toJson(persons);
        Log.e("GSON", json_list);

        /**
         * 将给定的 JSON 格式字符串转换为带泛型的集合对象
         */
        List<Person> retList = gson.fromJson(json_list, new TypeToken<List<Person>>() {}.getType());
        for (Person p : retList) {
            Log.e("GSON", p.toString());
        }
    }
}

Gson 解析 Json 运行结果

02-19 07:39:23.467: E/GSON(669): Person [name=Tom, age=90]
02-19 07:39:23.487: E/GSON(669): {"name":"Tom","age":90}
02-19 07:39:23.517: E/GSON(669): [{"name":"tom","age":10},{"name":"jon","age":20}]
02-19 07:39:23.547: E/GSON(669): Person [name=tom, age=10]
02-19 07:39:23.547: E/GSON(669): Person [name=jon, age=20]
原文链接
http://www.cnblogs.com/sunzn/archive/2013/02/19/2917025.html

复制代码

Gson 解析 Json 运行结果

JSON教程之GSON基本解析(Gson-Java) https://code.google.com/p/google-gson/downloads/list https://sites.google.com/site/gson/gson-user-guide http://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/index.html 阅读详情

相关推荐

Gson解析嵌套json

Gson解析嵌套json

Gson解析报异常 declares multiple JSON fields named `

GSON 报错declares multiple JSON fields named: 背景: 我们在开发过程经常会使用Gson去解释,这样映射非常方便,但是在类的使用过程我们,我们会经常使用继承,如果A是父类,A类有一个字段a,如果B类继承了A类,并且,B类也定义一个a 继承又涉及到覆盖和的问题,就是子类和父类可以同时有用一个方法或者变量,但是在类的继承使用过程没有问题,但是Gson在解析的时候就会出问题 public class A{ String a=""; String b=""; }

2万+

2025红队实战:Win11环境下ZAP、CobaltStrike与免杀套件深度评测

在网络安全领域,渗透测试与红队行动是评估系统防御能力的关键手段。其核心原理在于模拟真实攻击者的技术与流程,以发现潜在的安全漏洞。这项技术的价值在于主动识别风险,提升整体安全防护水平,广泛应用于企业安全评估、漏洞挖掘和攻防演练等场景。随着Windows 11系统普及,其增强的安全机制(如内存完整性、基于虚拟化的安全)对传统攻击工具链提出了新的挑战。本文聚焦于**CobaltStrike二开版**与**免杀套件**在Win11环境下的实战应用与深度对抗,探讨如何优化工具链以应对现代端点检测与响应(EDR)和高级

weixin_29315091的博客 308

Gson 实体转Json字符串 --- 报declares multiple JSON fields named XXX解决方法

前言 很是气愤,将一个对象转json字符串,一直报declares multiple JSON fields named passengers。调试了很久,都没找到原因。就这样,一下午又过去了。。加班加班 解决办法 检查实体里面的每一个属性是否都有get,set方法!!!!! 只要有一个属性没有,就会报这个错。 我写了实体B继承了A,B中有一个属性没写get,set方法,就上当了。刚开始还以为...

温故而知新,可以为师矣。 2万+

[LaTeX] 调整参考文献的格式(References),包括作者名缩写,行距,字体,引用顺序等等

在此记录我对LaTeX中参考文献references的尝试,主要涵盖如题几个方面。

the Blog of 等不到天亮丶等时光 4万+

股票行情接口,最全的接入方法

股票行情接口一般有两种,一种是WebSocket,一种是http,通过WebSocket可以获取逐笔的股票tick数据,实时并且高效;通过http接口可以获取股票行情接口中的股票历史数据;WebSocket是一种高效的双向通信协议,它允许数据的实时推送,避免了不断的轮询请求。其次,WebSocket允许您订阅特定的数据源或股票数据产品,只接收您感兴趣的信息,提高了数据的效率和可用性。通过接入股票行情数据的HTTP接口,您可以将数据导入到自己的分析工具或系统中,进行更深入的数据分析、模型构建和决策支持。

apifinance的博客 3425

Gson报declares multiple JSON fields named XXX解决方法

因为要把对象转化为json字符串,然后存到redis 中,所以用到了Gson。但是今天在测试的工程中,突然报出一下异常: class com.lenovoedu.model.adapter.SysAuthorityTreeAdapter declares multiple JSON fields named childList 于是,根据异常信息认真检查异常信息中的类,发现如下: ...

龙ygl龙的博客 6217

Unity嵌套ScrollView滑动冲突解决方案:ExecuteEvents.Execute事件透传

在Unity UGUI中,竖向与横向ScrollView嵌套时出现滑动失效,本质是EventSystem事件分发机制的拦截限制。其原理在于PointerDown被外层捕获后,后续PointerMove默认不向下透传;ExecuteEvents.Execute提供了一条绕过常规冒泡流程的官方事件旁路,支持低延迟、方向自适应的精准透传。该技术具备高兼容性与零侵入特性,广泛应用于电商商品页、内容流卡片组、多级导航等需‘列表中嵌套轮播/标签’的真实场景,是解决UGUI嵌套滚动问题的核心工程实践方案。

weixin_33164198的博客 633

【Gson error】declares multiple JSON fields named userId

Gson错误: 【声明了多个名为 userId 的字段】 public class Animal { private Integer userId; } // 猫咪继承动物类 public class Cat extends Animal { private String userId; public Cat(String userId) { this.userId = userId; } } 由于cat类和animal类都有一个相同的字段 userId,在使用Gson打印的时候就会报错。

Jewel’s blog 1901

UVM(5)-TLM通信

TLM是一种基于事务 (transaction) 的通信方式,通常在高抽象级语言例如SystemC或者SV/UVM中作为模块之间的通讯方式。

2301_76431006的博客 2106

OpenAI Codex 国内安装配置全攻略:从零到实战的 AI 编程助手集成指南

AI 编程助手正成为提升开发效率的关键工具,其核心原理是基于大规模语言模型对代码语义进行深度理解与生成。这类技术通过将自然语言指令转化为可执行的代码、自动化重构与调试,为开发者提供了智能化的结对编程体验,其技术价值在于显著降低编码复杂度、加速项目迭代。在实际应用场景中,AI 编程助手可集成于日常开发流,辅助完成代码生成、项目分析与自动化任务。本文聚焦于 OpenAI 的 Codex,针对国内开发者在网络、认证和配置上的常见挑战,提供了涵盖多种安装方式、详细配置步骤及核心使用技巧的实战指南,并特别介绍了如何利

weixin_28715081的博客 415

Gson对象转json时有个坑 IllegalArgumentException declares multiple JSON fields named

子类父类都有字段name,在B的对象转json时会报异常 public class A { private String name; } public class B extends A{ private String name; } public class Test { public void test() { Gson gson =new Gson(); String s = gson.toJson(new B()); } }

qq_37539693的博客 2718

基于 YOLOv26 的车辆违规停车检测系统:实时监控

本文提出了一种基于YOLOv26的车辆违规停车实时检测系统。系统采用多模块架构,包括视频预处理、YOLOv26目标检测、DeepSORT目标跟踪、停车区域定义、行为分析和违规判定等功能模块。关键技术包括使用YOLOv26s模型进行车辆检测,结合DeepSORT算法实现车辆跟踪,支持多种停车区域定义方式(多边形、矩形、限时区域等)。系统通过边缘计算平台部署,实现了对道路边、禁止停车区等场景的实时监控,能够准确识别长时间停车、禁止区域停车等违规行为,并触发告警机制。实验结果表明,该系统在车辆检测准确率和违规判定

一键难忘的博客 773

使用GSON解析JSON数据

GSON是谷歌提供的一个开源库,可以用来解析JSON数据 不过GSON并没有被添加到Android官方的API中,所以如果要使用这个开源库,我们就要先添加依赖,编辑app/build.gradle文件,在dependencies闭包中添加如下内容: implementation 'com.squareup.okhttp3:okhttp:4.0.1' implementation 'co...

冰之沁泠的博客 1万+

第一节:初识n8n与下一代工作流自动化

本章介绍了n8n的Fair-code理念与节点式架构,对比了其与Zapier/Make的核心差异,并引导读者在n8n Cloud上完成首次界面导览,建立了工作流自动化的宏观认知。

easeyoo的专栏 106

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Gson快速解析JSON字符串

关于GSON的入门级使用,这里就不提了,如有需要可以看这篇博文 《Google Gson的使用方法,实现Json结构的相互转换》 ,写的很好,通俗易懂。 我为什么写这篇文章呢?因为前几晚跟好友 xiasuhuei321 探讨了一下GSON解析复杂的JSON的时候,能不能只解析源数据中的数组,甚至只解析数组的某一部分。探讨了二十分钟,得出结论:没用过,不知道。 所以今天特地研究了一下,发现真的S...

huyawenz的博客 1万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

GSON解析复杂的JSON数组

GSON的两个重要方法   在GSON的API中,提供了两个重要的方法:toJson()和fromJson()方法。其中,toJson()方法用来实现将Java对象转换为相应的JSON数据,fromJson()方法则用来实现将JSON数据转换为相应的Java对象。

lianjianyong的博客 9406

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

使用 Gson 解析 Json

Gson 解析 JSON:你可以使用方法将 JSON 字符串解析为 Java 对象,使用方法将 Java 对象转换为 JSON 字符串。处理嵌套数据:当 JSON 中包含数组或嵌套对象时,你可以使用集合类(如List<T>)或定义嵌套的 Java 类来映射 JSON 数据。泛型类型解析:使用TypeToken来处理带有泛型参数的类型(如List<T>Gson 是一个非常灵活且强大的库,广泛应用于 Android 和 Java 项目中,特别适合进行 JSON 数据与 Java 对象之间的转换。

2402_85226471的博客 1272

Java GSON 解析 JSON 完全指南

GSON(Google JSON)是 Google 提供的用于在 Java 中处理 JSON 数据的库。它允许 Java 对象与 JSON 之间进行序列化和反序列化,支持简单对象、集合、泛型和复杂数据结构的转换。GSON 轻量、高效、易用,是 Java 开发中处理 JSON 的常见选择。有时,我们需要自定义 JSON 的格式。例如,修改日期格式或忽略某些字段。忽略某些字段user . name = "张三";// {"name":"张三","age":25} } }

codingexpert404的博客 1063

java gson解析json_JAVA使用GSON解析JSON数据

JAVA使用GSON解析JSON数据在使用第三方api的使用,有时候会从网络中获得json数据,所以说我们将如何解析json数据?下面小编将通过以下几点来进行json的讲解JSON (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to read and writ...

weixin_36047554的博客 550

解析JSON数据之GSON

GSON可以将一段JSON格式的数据 ==自动映射 ==》成一个对象(或对象数组) (Json:{}表示一个JSONObject对象,[]表示JSONArray数组(其元素就是一个JSONObject对象)) 使用GSON: 1. 在app/build.gradle文件中,的dependencies闭包添加:implementation 'com.google.code.gson:gso...

LJW874362735的博客 318

Android中使用GSON包解析JSON数据(简单JSON)

之前一直使用Java自带的JSONObject,JSONArray来进行解析,在JSON嵌套不多,数据不大的时候还是不错的。但是对于大量的JSON数据来说,效率就比较低了。Gson是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库。使用了面向对象的思想,提高了JSON解析的效率。        需要解析的JSON数据如下(JSON数据我保存为"languages.js

乞力马扎罗的雪CYF的博客 4141

JSON封装和解析(通过GSON)

JSON解析(通过GSON) 在app的build.gradle中 加入 // 添加GSON依赖 compile 'com.google.code.gson:gson:2.8.2' 版本可以在maven库 http://mvnrepository.com/artifact/com.squareup.retrofit2/retrofit 输入gson查看 1 创建一

5ingwings(SiHao)的博客 3216

java gson 解析json字符串_JSON 之GSON 解析

一、 谷歌GSON这个Java类库可以把Java对象转换成JSON,也可以把JSON字符串转换成一个相等的Java对象。Gson支持任意复杂Java对象包括没有源代码的对象。二、Gson解析Json步骤A、服务器端将数据转换成json字符串首先、服务器端项目要导入Gson的jar包到BuiltPath中。(Gson的jar:http://code.google.com/p/google-gson/...

weixin_30363285的博客 2118

Android中使用GSON包解析JSON数据(复杂JSON)

之前讨论过用GSON解析较为简单的JSON,这次稍微增加一点难度。把JSON弄的复杂一点,使JSON变为2层嵌套,并增加了一些其他元素。代码中把language.json放到assets文件夹下,把GSON.jar放到libs文件夹下。如果用的是Android Studio,需要右键GSON,jar,选择Add As Lirbary,否则AS不能识别。Eclipse中不需要这个步骤。具体解析以下三

乞力马扎罗的雪CYF的博客 4836

使用GSON对JSON解析

一.导入GSON 可以用maven,或者网上下载同名包 <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.2</version> <...

SuXing_的博客 530
上一篇: eclipse启动弹窗提示*.log
下一篇: 动态获得View的宽度和高度
西瓜cc
博客等级 码龄12年 29粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值