Android中级之网络数据解析一之Json解析

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: 本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处!在网络传输的时候,经常用到的解析方式有xml和json两种,今天我们主要来说下json、解析,以及其要点。


本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处!


在网络传输的时候,经常用到的解析方式有xml和json两种,今天我们主要来说下json、解析,以及其要点。

首先json格式:

“[”标识json解析开始,"]"标识json解析结束

"{"标识json的一个数据开始,"}"标识一个数据结束

key:'value'标识所传送的数据。key可以加引号,也可以不加;但value必须加引号,单引号或双引号都可以

key/value之间要用","隔开

其他就没什么了。

json包通常有gson,org-json等,下载路径:http://www.json.org/

那我们是以alibaba的fastjson为例来做示范

下载位置:http://download.csdn.net/detail/liuxian13183/5492645

解析目标:

[{view:'水浒传',data:{name:'宋江',age:'37'},data2:{name:"武松",age:"27"},memo:'英雄人物'},{view:'红楼梦',data:{name:'贾宝玉',age:"17"},data2:{name:"林黛玉",age:"14",memo:'情感人物'}}]

命名文件json.txt,放在assets路径下

注意:json数据要eclipse编辑,不要在windows环境下用txt编辑,否则会加入空格,造成不必要的影响


先上效果图


作法1:先写一bean

public class HistoryBean {
	private String view;
	private Map<String, Object> data;
	private String memo;
	/**
	 * @return the view
	 */
	public String getView() {
		return view;
	}
	/**
	 * @param view the view to set
	 */
	public void setView(String view) {
		this.view = view;
	}
	/**
	 * @return the map
	 */
	public Map<String, Object> getData() {
		return data;
	}
	/**
	 * @param map the map to set
	 */
	public void setData(Map<String, Object> data) {
		this.data = data;
	}
	/**
	 * @return the memo
	 */
	public String getMemo() {
		return memo;
	}
	/**
	 * @param memo the memo to set
	 */
	public void setMemo(String memo) {
		this.memo = memo;
	}
	/* (non-Javadoc)
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		return "HistoryBean [view=" + view + ", data=" +data+ ", memo=" + memo
				+ "]";
	}

注意:无论是变量还是方法名,都禁止出现关键字。

然后解析

@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		ListView main_listivew = (ListView) findViewById(R.id.main_listivew);
		data = new ArrayList<String>();
		List<String> targetJsons = unParseTxt("json.txt");
		for (String targetJson : targetJsons) {
			pase2(targetJson);
		}
		adapter = new MyAdapter();
		main_listivew.setAdapter(adapter);
	}

	private List<String> unParseTxt(String string) {
		// TODO Auto-generated method stub
		List<String> target = new ArrayList<String>();
		try {
			BufferedReader br = new BufferedReader(new InputStreamReader(
					getAssets().open(string)));
			String str;
			while ((str = br.readLine()) != null) {
				if (!TextUtils.isEmpty(str)) {
					target.add(str);
				}
			}
		} catch (Exception e) {
		}
		return target;
	}

	private void pase2(String targetJson) {
		// TODO Auto-generated method stub
		Log.i("AlipayTag", targetJson);
		List<HistoryBean> list = JSON.parseArray(targetJson, HistoryBean.class);
		for (HistoryBean bean : list) {
			data.add(bean.toString());
		}
	}

注解:

Json解析可使用JSON,JSONObject,JSONArray来调用

方法有:

解析成一对象,可以是bean,JSON.parse(text);
解析成byte数组,JSON.toJSONBytes(arg0, arg1)
解析成泛型,JSON.parseObject(input, clazz, features)


根据需要,大家可以更进行相应的扩展,欢迎大家踊跃交流!





目录
相关文章
|
9天前
|
域名解析 存储 网络协议
深入解析网络通信关键要素:IP 协议、DNS 及相关技术
本文详细介绍了IP协议报头结构及其各字段的功能,包括版本、首部长度、服务类型、总长度、标识、片偏移、标志、生存时间(TTL)、协议、首部检验和等内容。此外,还探讨了IP地址的网段划分、特殊IP地址的应用场景,以及路由选择的大致流程。最后,文章简要介绍了DNS协议的作用及其发展历史,解释了域名解析系统的工作原理。
46 5
深入解析网络通信关键要素:IP 协议、DNS 及相关技术
|
8天前
|
XML 存储 JSON
Twaver-HTML5基础学习(19)数据容器(2)_数据序列化_XML、Json
本文介绍了Twaver HTML5中的数据序列化,包括XML和JSON格式的序列化与反序列化方法。文章通过示例代码展示了如何将DataBox中的数据序列化为XML和JSON字符串,以及如何从这些字符串中反序列化数据,重建DataBox中的对象。此外,还提到了用户自定义属性的序列化注册方法。
24 1
|
5天前
|
物联网 5G SDN
5G 网络架构全解析:RAN、核心网和接入网
5G 网络架构全解析:RAN、核心网和接入网
36 8
|
1天前
|
存储 安全 算法
网络安全的盾牌与利剑:漏洞防范与加密技术解析
【9月更文挑战第31天】在数字时代的浪潮中,网络安全成为守护个人隐私和组织资产的重要屏障。本文将深入探讨网络安全中的两大关键要素:安全漏洞和加密技术。我们将从漏洞的类型、检测方法到如何有效修补,逐一剖析;同时,对加密技术的基本原理、应用实例进行详细解读。文章旨在为读者提供一套实用的网络安全知识框架,帮助提升网络防护意识和技能,确保在日益复杂的网络环境中保护好每一份数据。
11 3
|
5天前
|
存储 JSON Go
在Gin框架中优雅地处理HTTP请求体中的JSON数据
在Gin框架中优雅地处理HTTP请求体中的JSON数据
|
2天前
|
SQL 监控 安全
网络安全与信息安全的全面解析##
本文深入探讨了网络安全和信息安全的重要性,揭示了一系列关键概念,包括网络漏洞、加密技术及安全意识。通过详细的案例分析和实践指南,旨在提高读者对网络威胁的认知,并介绍如何有效防范这些威胁。无论是企业还是个人用户,了解并实施这些策略都是确保数字安全的关键。 ##
11 2
|
8天前
|
数据采集 存储 JavaScript
构建您的第一个Python网络爬虫:抓取、解析与存储数据
【9月更文挑战第24天】在数字时代,数据是新的金矿。本文将引导您使用Python编写一个简单的网络爬虫,从互联网上自动抓取信息。我们将介绍如何使用requests库获取网页内容,BeautifulSoup进行HTML解析,以及如何将数据存储到文件或数据库中。无论您是数据分析师、研究人员还是对编程感兴趣的新手,这篇文章都将为您提供一个实用的入门指南。拿起键盘,让我们开始挖掘互联网的宝藏吧!
|
7天前
|
存储 供应链 安全
守护网络前线:漏洞、加密与安全意识的全方位解析
在这个数字时代,网络安全已成为我们不可忽视的重要议题。本文深入探讨了网络安全中的三大关键领域:安全漏洞、加密技术以及安全意识。通过具体案例和实用策略,旨在为读者提供一个全面而深入的视角,以更好地理解和应对网络安全挑战。
|
6天前
|
存储 安全 算法
网络安全与信息安全的全面解析
本文深入探讨了网络安全和信息安全的重要性,详细分析了常见的网络漏洞及其成因,并介绍了当前主流的加密技术。此外,文章还强调了提升安全意识的必要性,为读者提供了实用的建议和措施。
13 1
|
9天前
|
安全 算法 网络安全
网络安全的守护神:漏洞防御与加密技术的深度解析
【9月更文挑战第23天】在数字时代的浪潮中,信息安全已成为我们不可忽视的重要课题。本文旨在深入探讨网络安全的两大支柱——漏洞防御和加密技术,揭示其背后的原理及应用。通过分析近期的安全事件,我们将理解安全意识的重要性,并学习如何通过技术和策略保护自己的数字资产。文章不仅提供理论知识,还将分享实用的安全建议,助您在网络世界中更安全地航行。
27 4

推荐镜像

更多
下一篇
无影云桌面