android开发 Json解析种类大全

Android JSON 解析 在 Android 中,JSON(JavaScript Object Notation)是一种常用的数据交换格式,用于客户端与服务器之间的数据传输。Android 提供了多种方式来处理 JSON 数据,本文章介绍了 Android JSON 解析以及 Gson 的使用,和其他第三方库的说明。 阅读详情

今天整理了下前面写的一些项目,有个android访问网络,通过json传值的解析工具类整理了下完善了一些传值过程中用到的类型。

我是用的alibaba的fastjson工具,然后自己封装了一下常用传值种类。

关于fastjson:http://www.cnblogs.com/zhenmingliu/archive/2011/12/29/2305775.html

如果有哪位大神看到这篇文章,麻烦帮我优化下,希望能更便捷智能快速的解析json对象!

JsonTools:

package com.test;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;

/**
 * 完成对json数据的解析
 * @author wanglei
 *
 */
public class JsonTools {
	
	public JsonTools() {
		// TODO Auto-generated constructor stub
	}
	
	/**
	 * 使用JSON工具把数据转换成json对象
	 * @param value 是对解析的集合的类型
	 */
	public static String createJsonString(Object value) {
		String str = JSON.toJSONString(value);
		return str;
	}

	/**
	 * 对单个javabean进行解析
	 * @param <T>
	 * @param json 要解析的json字符串
	 * @param cls 
	 * @return
	 */
	public static <T>T getObject(String json,Class<T> cls){
		T t = null;
		try {
			t = JSON.parseObject(json,cls);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return t;
	}
	
	/**
	 * 对list类型进行解析
	 * @param <T>
	 * @param json
	 * @param cls
	 * @return
	 */
	public static <T> List<T> getListObject(String json,Class<T> cls){
		List<T> list = new ArrayList<T>();
		try {
			list = JSON.parseArray(json, cls);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return list;
	}
	
	/**
	 * 对MapString类型数据进行解析
	 * @param json
	 * @return
	 */
	public static Map<String, String> getMapStr(String json){
		Map<String, String> mapStr = new HashMap<String, String>();
		try {
			mapStr = JSON.parseObject(json, new TypeReference<Map<String, String>>(){});
		} catch (Exception e) {
			e.printStackTrace();
		}
		return mapStr;
	}
	
	/**
	 * 对MapObject类型数据进行解析
	 * @param json
	 * @return
	 */
	public static Map<String, Object> getMapObj(String json){
		Map<String, Object> mapStr = new HashMap<String, Object>();
		try {
			mapStr = JSON.parseObject(json, new TypeReference<Map<String, Object>>(){});
		} catch (Exception e) {
			e.printStackTrace();
		}
		return mapStr;
	}
	
	/**
	 * 对listmap类型进行解析
	 * @param json
	 * @return
	 */
	public static List<Map<String, Object>> getListMap(String json){
		List<Map<String, Object>> list = new ArrayList<Map<String,Object>>();
		try {
			list = JSON.parseObject(json,new TypeReference<List<Map<String, Object>>>(){});
		} catch (Exception e) {
			e.printStackTrace();
		}
		return list;
	}
}
JsonTest:

package com.test;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class JsonTest {
	
	public String test1(){
		Map<String, String> maps = new HashMap<String, String>();
		maps.put("success", "true");
		maps.put("question", "请问你是男还是女?");
		maps.put("data", "#####$%#%$$#@%@#$^%$#@#%^!#@%&^*&(&^%$#@%^&^%$#@%^&*");
		String jsonStr = JsonTools.createJsonString(maps);
		return jsonStr;
	}
	
	public Map<String, String> getMap(String jsonStr){
		return JsonTools.getMapStr(jsonStr);
	}
	
	public String test2(){
		Map<String, Object> maps = new HashMap<String, Object>();
		maps.put("success", "true");
		maps.put("question", "请问你是男还是女?");
		
		maps.put("data", new User(1001, "麻子", "1234", "110"));
		
		List<User> users = new ArrayList<User>();
		users.add(new User(1002, "张三", "52222346654", "5420155152"));
		users.add(new User(1003, "李四", "52323163514", "5353456456"));
		users.add(new User(1004, "王二", "55541221254", "2131231231"));
		maps.put("datalist", users);
		
		String jsonStr = JsonTools.createJsonString(maps);
		return jsonStr;
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		JsonTest jsonTest = new JsonTest();
		String jsonString = jsonTest.test1();
		System.out.println(jsonString);
		//解析MapString类型
		Map<String, String> getMap = jsonTest.getMap(jsonString);
		System.out.println(getMap.get("success"));
		System.out.println(getMap.get("question"));
		System.out.println(getMap.get("data"));
		
		String jsonStr2 = jsonTest.test2();
		System.out.println(jsonStr2);
		
		Map<String, Object> getMapObj = JsonTools.getMapObj(jsonStr2);
		System.out.println(getMapObj.get("success"));
		System.out.println(getMapObj.get("question"));
		//解析mapObject类型
		User user = JsonTools.getObject(getMapObj.get("data").toString(), User.class);
		System.out.println(user.getUsername());
		//解析MapListObject类型
		List<User> users = JsonTools.getListObject(getMapObj.get("datalist").toString(), User.class);
		for (User user2 : users) {
			System.out.println(user2);
			System.out.println(user2.getUsername());
		}
		
	}

}


工具类和测试的源码下载地址:http://download.youkuaiyun.com/detail/return_code/4770574


安卓Json数据以及解析为javaBean 安卓解析Json类型数据什么是json使用JSONObject进行解析 什么是json JSON(JavaScript Object Notation,JS 对象简谱) 是一种轻量级的数据交换格式。 示例: [ { "id": "0", "name": "Bilibili", "url": "https://www.bilibili.com/", "version": "1.5" }, { "id": "1", "name": "Baidu", 阅读详情

相关推荐

Android使用JSON解析数据

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于 Web API 交互。Kotlin 提供了多种解析 JSON 数据的方法,其中和Gson是常见的选择。

XHRK1的博客 855

FastJson常用方法总结

依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.54</version> </dependency> 常用API 1...

weixin_41010294的博客 895

Android开发--使用实体类解析JSON文本

Android开发–使用实体类解析JSON文本 在Android开发过程中,涉及到了API的调用的时候,会返回特定的数据,两个主流返回的数据格式是JSON形式和XML形式。但是相对于XML,JSON数据格式有着比较简单,易于读写,格式都是压缩的,占用带宽小等优点,这里介绍的是JSON文本的解析,采用的方法是实体类解析。 准备:这里使用的是谷歌的JSON解析—GSON

Outlier的博客 3261

利用fastJson实现Object、List<S>对象值拷贝工具类【BeanCopyUtils】

目录 pom.xml引入相应Maven依赖包 BeanCopyUtils.java 工具类验证用实体信息构造 BankCard.java UserDto.java UserInputDto.java UserOutputDto.java 工具类客户端调用 Client.java 工具类客户端调用控制台输出 pom.xml引入相应Maven依赖包 <depend...

liubin5620的博客 1865

【BUAA】【计组】计算机组成 pre (含详细解析)

BUAA 计算机组成 本文章旨在为@走肖暂时无法接通的系列文章创造一个目录,收藏本文章,方便查阅! 1. 入门测试 2. 基础知识 3. Logisim   欢迎来到 Logisim 的世界   Logisim 门电路   Logisim 组合电路   Logisim 时序电路   Logisim 仿真与调试   应用与挑战 4. Verilog 与仿真工具   前言   ISE 入门   VCS 入门   Verilog 语法   Verilog 题目实例与分析   Verilog 工程的设计开发调试

Schrodinger007的博客 9805

手把手教你用vivado2018.3为复旦微JFMQL15T打IP补丁(含环境变量配置技巧)

本文详细介绍了在Vivado 2018.3环境中为复旦微JFMQL15T开发板打IP补丁的全流程,包括环境变量配置、IP缓存管理等关键步骤。通过实战验证的解决方案,帮助工程师快速搭建开发环境,解决国产芯片开发中的常见问题,提升开发效率。

weixin_30374009的博客 722

fastjson json格式的转换成对象,List对象,Map

fastjson的依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.60</version> </dependency> 数据初始化 String str1 = "[{\"id\":\"1

vivi_nini的博客 1万+

spoon工具的常用基础操作

先创建一个作业,这个作业流程,包括进行设置变量转换,查询结果输出转换,方便后续循环。整个流程写完后,执行作业5_执行整个流程,成功后,可以在数据库查看结果。,新建一个转换,excel表输入然后复制记录到结果,保存转换文件。这三个用户下 都有一张emp表 分别是 三个部门的用户信息。,新建一个数据库连接,变量命名用户名和密码。成功执行后,可以到保存的excel位置进行查看。emp表输入,可以进行预览查看数据有没有过来。输出到一直excel表,运行结果输出。,新建一个转换,拖拽。

qq_43583887的博客 5829

通过fastjson 将 Object 转 List<T>

1,引入依赖 <!-- fastjson--> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.47</version> </depende...

小熙哥的博客 5333

AVEVA PDMS 二次开发之PML实战:从宏到自定义窗体的效率提升

本文详细介绍了AVEVA PDMS二次开发中PML语言的应用,从基础宏编写到高级窗体开发,全面提升工程设计效率。通过实战案例展示如何利用PML实现批量操作、流程自动化和交互优化,帮助工程师快速掌握这一强大工具。

weixin_42549451的博客 337

SystemVerilog新手实战指南:iverilog与VScode的完美组合

本文为SystemVerilog新手提供了一套高效入门方案,详细介绍了如何利用开源编译器iverilog与轻量编辑器VScode搭建学习环境。内容涵盖十分钟快速安装配置、首个工程从编码到查看波形的完整流程,并演示了动态数组和队列等SystemVerilog新特性的使用,旨在帮助初学者避开复杂商业工具,快速掌握数字电路设计与验证的核心技能。

f6g7h8i9j的博客 512

gson,fastJson解析后台字符串类型数组成实体类

1,需求: 字符串数组大概是后台给的json格式类似以下: { "id": "", "clientId": "", "channelId": "", "urls": "[{name:'',url:''},{name:'',url:''},{name:'',url:''}]", "extend": "" } 中我要把urls String型数组参数转换成Li...

qq_38996911的博客 493

S7-200SMART PLC中进行MODBUS RTU通信的3种方法(1)

S7-200SMART PLC中进行MODBUS RTU通信的3种方法(1)

Robot_PLC_HMI_Automation 4235

安卓开发工程师-数据解析(JSON、XML)

在解析 JSON 或 XML 数据时,可能会出现各种异常,如格式错误、数据缺失、类型不匹配等。为了保证程序的健壮性,需要对这些异常进行合理的处理。在解析 JSON 或 XML 数据时,可以将解析后的数据缓存起来,以便下次使用时可以直接从缓存中获取,而无需重新解析。在 Android 中,可以使用 DOM(Document Object Model)解析器来解析 XML 数据。动态解析是指在不知道 JSON 或 XML 数据的具体结构的情况下,能够灵活地解析和处理数据。包来解析 JSON 数据。

qq_62784677的博客 1049

影像组学文章复现:ITHscore:通过多尺度放射学特征全面定量NSCLC肿瘤内异质性 ----小细胞肺癌肿瘤异质性评分

目的:通过计算机断层扫描(CT)图像量化非小细胞肺癌(NSCLC)的肿瘤内异质性(ITH)。 方法:整合局部辐射特征和全局像素分布模式,开发定量ITH测量-ITHscore。在六个患者队列(n = 1399)中检查ITHscore与肿瘤表型,基因型和患者预后的关联,以验证其在表征ITH方面的有效性。

xxx 1019

Neo4j LLM知识图谱构建器使用教程

是一个开源应用程序,旨在将非结构化数据(如PDF、文档、文本、YouTube视频、网页等)转换为存储在Neo4j中的知识图谱。该项目利用大型语言模型(如OpenAI、Gemini等)从文本中提取节点、关系及其属性,并通过Langchain框架创建结构化的知识图谱。

u013250861的博客 537

android开发笔记之Json解析

在上篇文章中我们提到在Android开发中经常用到xml文件,当然跟服务器打交道,大部分还是喜欢用Json数据。Json的定义:一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。JSON Vs XML1.JSON和XML的数据可读性基本相同2.JSON和XML同样拥有丰富的解析手段3.JSON相对于XML来讲,数据的体积小4.JSON与JavaScript的交互更加方便5.JSON对数据

minigeek的博客 5348

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Android开发json数据解析

在Android开发过程中,或更新数据,或为减轻手机负担将大部分复杂运算交由服务器来进行,都需要与服务器之间进行数据交互,数据交互中,使用的较为频繁的格式变为json数据,书写便捷,操作方便,本文就对于客户端对于获取的json数据的解析进行一定的介绍。了解不是很深刻,只敢说简单应用,请测能用。 json数据书写比较简单,如下: { "age": "24", ...

小晖的博客 4498

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Android开发之JSON数据解析详解(一)

 今天很高兴和大家一起学习Android的JSON数据解析,可能对于学习安卓的朋友都知道JSON在数据解析方面已经很普遍了.所以也是我们必定要了解的知识 ,下面让我们了解一下JSON的发展历程. XML——这种用于表示客户端与服务器间数据交换有效负载的格式,几乎已经成了Web services的同义词。然而,由于Ajax和REST技术的出现影响了应用程序架构,这迫使人们开始寻求`XML的替

知他人之所知,晓他人之不晓。 8036

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Android中解析JSON数据

解析JSON数据

Errol's Blog 6436

android之json解析优化,Android开发之json解析

目前正在尝试着写app,发现看懂代码和能写出来差距很大,最关键的是java基础比较的差,因为只会python,java基础只学习了一个礼拜就过了。感觉java写出来的代码不如python简单明了。上面废话了。现在开发app肯定会涉及到与服务器的交互的,目前的首选是json。用到的解析json的包可以选择gson,fastjson等。现在分析下把我难倒了好几天的一个bug,就是json的解析。用到的...

weixin_32098457的博客 420

Android JSON解析

2.所有字段名称要和json返回字段高度一致,如果不太适合直接作为Java字段来命名,可以使用@SerializedName注解的方式来让JSON字段和java字段之间建立映射关系。神奇之处在于,它可以将一段JSON格式的字符串自动映射成一个对象,从而不需要我们再手动去编写代码进行解析了.//3. 一个数组元素就是一个JSONObject。//1. 创建JSONArray 里面是数组。//2. 解析数组里面的每一个数据。//4. 根据key获取对应的值。“city”:“苏州”,服务端的json数据为。

2401_89722372的博客 1815

安卓中的XML和JSON

XML和JSON其实还是比较常见了,JAVASE和JAVAEE的学习中或多或少会有些接触的,这篇文章主要关于XML和JSON在安卓中的一些应用。 XML 概述 XML是一种常用的存储数据方式,设计初衷就是为了传输和存储数据。 在Android平台中内部很多地方使用了XML存储: 比如之前的SharedPreferences的存储就是使用了XML文件,持久化存储的同时又兼具轻量的特性。(h...

旧日灯塔 3036

Android 网络数据JSON解析使用

json

彬sir哥的博客 958

在Android开发中解析JSON:从基础到高级技巧

在Android开发中,解析JSON是一个常见的需求。通过使用`org.json`库、`Gson`库、`Moshi`库或`Jackson`库,开发者可以轻松地解析和操作JSON数据。对于复杂的数据结构,可以通过嵌套解析、动态字段处理和类型安全的解析来优化性能。希望本文能帮助你在Android开发中更高效地处理JSON数据。

Myqijiahai的博客 1303

安卓中解析json数据

一、概述 JSON是JavaScript Object Notation的简称,起源于js(javascript)它是一种轻量级的数据交换格式,JSON不仅在js中广泛使用,同时还在其他领域得到广泛使用,如c,c++,java,Php,swift等等,成为了一种通用的理想数据交换格式,它有两种数据结构,分别是对象,数组,它形式上有花括号{}和中括号[]嵌套,{}中的是代表对象,[]中的为数组,即对象

钟小林的博客 6074
上一篇: 关于android自定义相机连续对焦功能的个人见解
下一篇: 简单的ProgressDialog调用与关闭
Return_Code
博客等级 码龄14年 8粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值