Android中级之网络数据解析一之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()*/@Overridepublic String toString() {return "HistoryBean [view=" + view + ", data=" +data+ ", memo=" + memo+ "]";}

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

然后解析

@Overrideprotected 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 stubList<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 stubLog.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)


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





转载于:https://www.cnblogs.com/fengju/archive/2013/05/31/6174459.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/461028.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Struts2中ValueStack结构和总结

【ValueStack和ActionContext的关系】首先&#xff0c;从结构上来看ValueStack是ActionContext的一个组成部分&#xff0c;是对ActionContext功能的扩展。ActionContext是一个容器结构&#xff0c;是Struts2中用于数据存储的的场所&#xff0c;而ValueStack则是一个具备表达式引…

将USB-WiFi网卡移植到X210开发板

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 一、移植前的准备工作 1、搭建开发环境 &#xff08;1&#xff09;虚拟机运行着ubuntu14.04系统。 &#xff08;2&#xff09;X210开发板运行着linux内核镜像、QT4.8文件系统镜像。相关的镜像文件在…

文件读取ini文件另一种读取办法

时间紧张&#xff0c;先记一笔&#xff0c;后续优化与完善。 Windows下的ini文件的读取可以应用系统提供的api来实现 GetPrivateProfileString GetPrivateProfileInt ... 现实应用中, 如果不应用一种同一的方法来包装一下会让源代码看起来很乱。 所以,须要计划一个便利&#xf…

浅谈mysql数据库引擎

2019独角兽企业重金招聘Python工程师标准>>> 数据库是数据的集合&#xff0c;计算机中的数据库是存储器上一些文件的集合或者是内存数据的集合。Mysql,SQL server数据库都是可以存储数据&#xff0c;并提供数据查询&#xff0c;更新功能的数据库管理系统。Mysql数据…

网络摄像机简介

以下内容源于网络资源的学习与整理&#xff0c;如有侵权请告知删除。 一、网络摄像机定义 &#xff08;1&#xff09;网络摄像机&#xff0c;也叫IP摄像机&#xff0c;即IPCamera&#xff0c;简称IPC&#xff0c;近几年得益于网络带宽&#xff0c;芯片技术&#xff0c;算法技术…

如今的移动操作系统,写在2013年——android篇 by 伊一线天

前奏&#xff1a; 曾在2011年&#xff0c;我写过一篇同样题材的文章。时隔2年后&#xff0c;如今的移动操作系统领域跌宕起伏&#xff0c;2年前的一些系统变得更加强大&#xff0c;一些已经昙花一现。现在让我再来总结一些2013年移动操作系统。 第一讲&#xff1a;android 自从…

linux qt ping,Qt5.2中使用ping命令实现Ip扫描功能

在实现类似于Free IP Scanner 2.1的Ip扫描器软件中&#xff0c;会用到ping命令。如果使用Qt编程实现&#xff0c;主要会用QThread、QProcess这两个类。关于这两个类的具体用法可以查阅Qt助手或者QT官网。在QT中为了扫描大量的Ip&#xff0c;通常需要将扫描Ip的任务放在一个单独…

Python安装模块出错(ImportError: No module named setuptools)解决方法

原地址&#xff1a;http://www.cnblogs.com/BeginMan/archive/2013/05/28/3104928.html 在window平台下安装第三方模块时&#xff0c;出现这样的错误&#xff1a; Google了以下&#xff0c;才知道原来Python里少了这个模块。 我们可以在Python官网去查找 其中 Package Index中查…

kali linux 2.0 ssh,Kali 2.0使用SSH进行远程登录(示例代码)

一、配置SSH参数修改sshd_config文件&#xff0c;命令为&#xff1a;vim /etc/ssh/sshd_config将#PasswordAuthentication no的注释去掉&#xff0c;并且将NO修改为YES //kali中默认是yes将PermitRootLogin without-password修改为PermitRootLogin yes二、启动SSH服务命令为&am…

数据库课程设计报告

课程设计报告内容 封面&#xff08;注明组员及分工&#xff09; 目录 1&#xff0e;系统概述 – 系统的特点 – 系统设计环境 2&#xff0e;系统需求分析 – 系统设计的目标 – 系统需求分析&#xff08;给出&#xff1a;数据流图、数据字典&#xff09; – 系统功能…

基于Hi3516A的H265 IPC LIVE555 开发

转载于http://m.blog.csdn.net/faihung/article/details/73008742&#xff0c;如有侵权请告知删除。 1 系统工作原理 系统以Hi3516A开发平台&#xff08;由高分辨率1080 p的AR0330摄像头模块、带千兆以太网功能的Hi3516A控制器模块组成硬件平台&#xff0c;并在硬件平台上烧写了…

教材配套PPT初稿

1&#xff0d;10章初稿&#xff0c;基本完整。有些粗糙&#xff0c;后面可能会稍作调整。 附更新情况如下&#xff1a; 1.增加了第10章内容&#xff1b; 2.第5章增加了一些内容&#xff1b; 3.第3章内容部分更新&#xff1b; 4.增加了第8&#xff0d;9章内容。 订正&#xff1a…

linux ssh抓包,如何在SSH连接Linux系统的环境下使用wireshark抓包?

TSINGSEE青犀视频云边端架构EasyNVR、EasyDSS、EasyGBS等都是有两种操作系统的版本&#xff0c;一种是linux&#xff0c;一种是windows。而大多数开发者用户都会使用linux版本进行安装。对于安装部署出现的问题&#xff0c;TSINGSEE青犀视频团队研发的经常为客户远程调试&#…

Gearman 启动日志文件提示协议出错的BUG

如果直接以gearmand -d 启动 /usr/local/var/log/gearmand.log 里提示 Address family not supported by protocol ERROR 2014-11-20 20:05:49.000000 [ main ] socket()(Address family not supported by protocol) -> libgearman-server/gearmand.cc:468 ERROR 2014-11-20…

linux环境变量设置方法(PATH等环境变量)

以下内容源于网络资源的学习与整理&#xff0c;如有侵权请告知删除。 linux系统的环境变量有很多&#xff0c;这里简单介绍几个常见环境变量的设置方法。 环境变量PATH 这个环境变量&#xff0c;表示“可执行程序的查找路径”。 1、查看PATH的值&#xff0c;输入“echo $PATH”…

ASP.NET后台调用前台JS函数的三种常见方法

为什么80%的码农都做不了架构师&#xff1f;>>> 第一种&#xff1a;使用普通的添加控件中的Attributes属性进行调用 例如&#xff0c;像一般的普通的按钮&#xff1a;Button1.Attributes.Add("onclick","MyFun();"); 此方法只能在Onload中或者…

Android基础知识大纲

原文链接&#xff1a;http://android.eoe.cn/topic/overview * Android是什么&#xff1f;*版本&#xff1a;Android 4.0 r1原始页面&#xff1a;http://developer.android.com/guide/basics/what-is-android.htmlAndroid是一个移动设备的程序集合&#xff0c;包括的操作系统、…

linux unix shell programming,UnixampLinux Shell Programming I.ppt

《Unix&ampLinux Shell Programming I.ppt》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《Unix&ampLinux Shell Programming I.ppt(17页珍藏版)》请在人人文库网上搜索。1、Unix/Linux Shell Programming I,Dec 14th 2011 Shen Wei,Agenda,Unix/Linux Intro…

被遮挡的绝对定位 z-index

<div class”A” style”position:relative;”>A (relative) <div class”logo” style”position:absolute;z-index:99999;“></div> </div> <div class”B” style”position:relative;”>B (relative)</div> 最近做minisite项目时&…

嵌入式数据库sqlite在ARM上的的移植和使用

参考SQLite的编译、安装和使用_whz_zb的博客-CSDN博客&#xff0c;如有侵权&#xff0c;请告知删除。 参考&#xff1a;头文件路径问题 Linux下的头文件搜索路径 - 心哲 - 博客园 参考&#xff1a;进一步学习资源 SQlite - 标签 - likebeta - 博客园 一、源码获取 SQLite Do…