安卓开发中,解析json 注释文件,要详细点,完整的的代码与注释,谢谢

android解析json的三种方法源代码 - 下载频道
- CSDN.NET
&&&&android解析json的三种方法源代码
android解析json的三种方法源代码
android解析json的三种方法源代码,还包括gson和fastjson的jar文件
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
您可能还需要
移动开发下载排行Android之json数据解析
-------------
新增文件夹...
新增文件夹
(多个标签用逗号分隔)
首先是介绍:
一、什么是json数据
1、json:javascript object Notation的简称
2、json数据是一系列键值对的集合;
3、json已经被大多数开发人员,在网络数据的传输当中应用非常广泛;
4、json相对于xml来讲解析稍微方便一些
5、它的基本数据格式是:
"name":"Michael",
"andress":
"city":"Beijing",
"Street":"Chaoyang Road",
"prostcode":100024
二、json数据跟xml的比较
1、json和xml的数据可读性基本相同;
2、json和xml同样拥有丰富的解析手段;
3、json相对于xml来讲,数据体积小;
4、json与javascrpit的交互更加方便;
5、json对数据的描述性相对较差;
三、android中的3种解析方式的代码如下:
首先要把jar包拷到项目中:
第一种方式解析:private String jsonData1="[{\"name\":\"renhaili\",\"age\":20},{\"name\":\"zhouxiaodong\",\"age\":21}]";这种数据的解析方式:public void parseJson(String jsonData) {
// 如果需要从解析json数据,首先要生成一个jsonReader对象
JsonReader reader = new JsonReader(new StringReader(jsonData));
// 现在开始解析
reader.beginArray();// 开始解析数组
while (reader.hasNext()) {
reader.beginObject();// 开始解析对象
while (reader.hasNext()) {
String tagName = reader.nextName();
if (tagName.equals("name")) {
System.out.println(reader.nextString());
} else if (tagName.equals("age")) {
System.out.println(reader.nextInt());
reader.endObject();// 结束对象解析
reader.endArray();// 结束数组解析
} catch (IOException e) {
e.printStackTrace();
}第二种方式解析:private String jsonData2="{\"name\":\"xiong\",\"age\":18}";这种数据的解析方式:
单个json对象转化为与之对应的user对象
这种只能解析对象,不可以解析数组的
首先要创建一个User类:public class User {
public String getName() {
public void setName(String name) {
this.name =
public int getAge() {
public void setAge(int age) {
this.age =
}然后利用User类解析json数据:
Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,或者反过来。
Gson网址public void pareUserFromJson(String jsonData){
Gson gson=new Gson();//创建Gson对象,
User user=gson.fromJson(jsonData,User.class);
System.out.println(user.getName());
System.out.println(user.getAge());
}第三种解析:还是第一种的数据类型用第二种方式解析:
json对象数组转化为与之对应的user对象
如果想要JSON数组转换成多个的User对象,可以使用TypeToken:
Type 是 Java 编程语言中所有类型的公共高级接口。它们包括原始类型、参数化类型、数组类型、类型变量和基本类型。 public void parseJsonFromUser(String jsonData){
//likedlist是双向列表
Type listType=new TypeToken&LinkedList&User&&(){}.getType();
Gson gson=new Gson();
LinkedList&User& users=gson.fromJson(jsonData, listType);
for(Iterator&User& iterator=users.iterator();iterator.hasNext();){
User user=(User)iterator.next();
System.out.println(user.getName());
System.out.println(user.getAge());
相关资讯  — 
相关文档  — 
发布时间: 21:43:20
同类热门经验
87314次浏览
172624次浏览
71992次浏览
104653次浏览
67763次浏览
OPEN-OPEN, all rights reserved.android解析json格式数据实现代码-安卓教程-手机开发-壹聚教程网android解析json格式数据实现代码json数据格式解析我自己分为两种,一种是普通的,一种是带有数组形式的,下面积们分别举说明一下关于android手机开发中处理方法。
普通形式的:
服务器端返回的json数据格式如下:
{&userbean&:{&Uid&:&100196&,&Showname&:&u75afu72c2ub50&,&Avtar&:null,&State&:1}}
分析代码如下:
// TODO 状态处理 500 200
&&&&&&&&&&&&&&& int res = 0;
&&&&&&&&&&&&&&& res = httpClient.execute(httpPost).getStatusLine().getStatusCode();
&&&&&&&&&&&&&&& if (res == 200) {
&&&&&&&&&&&&&&&&&&& /*
&&&&&&&&&&&&&&&&&&&& * 当返回码为200时,做处理
&&&&&&&&&&&&&&&&&&&& * 得到服务器端返回json数据,并做处理
&&&&&&&&&&&&&&&&&&&& * */
&&&&&&&&&&&&&&&&&&& HttpResponse httpResponse = httpClient.execute(httpPost);
&&&&&&&&&&&&&&&&&&& StringBuilder builder = new StringBuilder();
&&&&&&&&&&&&&&&&&&& BufferedReader bufferedReader2 = new BufferedReader(
&&&&&&&&&&&&&&&&&&&&&&&&&&& new InputStreamReader(httpResponse.getEntity().getContent()));
&&&&&&&&&&&&&&&&&&& String str2 = &&;
&&&&&&&&&&&&&&&&&&& for (String s = bufferedReader2.readLine(); s != s = bufferedReader2
&&&&&&&&&&&&&&&&&&&&&&&&&&& .readLine()) {
&&&&&&&&&&&&&&&&&&&&&&& builder.append(s);
&&&&&&&&&&&&&&&&&&& }
&&&&&&&&&&&&&&&&&&& Log.i(&cat&, &&&&&&&& + builder.toString());
JSONObject jsonObject = new JSONObject(builder.toString())
&&&&&&&&&&&&&&&&&&&&&&& .getJSONObject(&userbean&);
&&&&&&&&&&&&&&& String U
&&&&&&&&&&&&&&& String S
&&&&&&&&&&&&&&& String A
&&&&&&&&&&&&&&& String S
&&&&&&&&&&&&&&& Uid = jsonObject.getString(&Uid&);
&&&&&&&&&&&&&&& Showname = jsonObject.getString(&Showname&);
&&&&&&&&&&&&&&& Avtar = jsonObject.getString(&Avtar&);
&&&&&&&&&&&&&&& State = jsonObject.getString(&State&);
带数组形式的:
服务器端返回的数据格式为:
{&calendar&:
&&& {&calendarlist&:
&&&&&&&&&&& [
&&&&&&&&&&& {&calendar_id&:&1705&,&title&:&(u4eb2u5b50)ddssd&,&category_name&:&u9ed8u8ba4ub&,&showtime&:&&,&endshowtime&:&&,&allDay&:false},
&&&&&&&&&&& {&calendar_id&:&1706&,&title&:&(u65c5u884c)&,&category_name&:&u9ed8u8ba4ub&,&showtime&:&&,&endshowtime&:&&,&allDay&:false}
&&&&&&&&&&& ]
分析代码如下:
// TODO 状态处理 500 200
&&&&&&&&&&&&&&& int res = 0;
&&&&&&&&&&&&&&& res = httpClient.execute(httpPost).getStatusLine().getStatusCode();
&&&&&&&&&&&&&&& if (res == 200) {
&&&&&&&&&&&&&&&&&&& /*
&&&&&&&&&&&&&&&&&&&& * 当返回码为200时,做处理
&&&&&&&&&&&&&&&&&&&& * 得到服务器端返回json数据,并做处理
&&&&&&&&&&&&&&&&&&&& * */
&&&&&&&&&&&&&&&&&&& HttpResponse httpResponse = httpClient.execute(httpPost);
&&&&&&&&&&&&&&&&&&& StringBuilder builder = new StringBuilder();
&&&&&&&&&&&&&&&&&&& BufferedReader bufferedReader2 = new BufferedReader(
&&&&&&&&&&&&&&&&&&&&&&&&&&& new InputStreamReader(httpResponse.getEntity().getContent()));
&&&&&&&&&&&&&&&&&&& String str2 = &&;
&&&&&&&&&&&&&&&&&&& for (String s = bufferedReader2.readLine(); s != s = bufferedReader2
&&&&&&&&&&&&&&&&&&&&&&&&&&& .readLine()) {
&&&&&&&&&&&&&&&&&&&&&&& builder.append(s);
&&&&&&&&&&&&&&&&&&& }
&&&&&&&&&&&&&&&&&&& Log.i(&cat&, &&&&&&&& + builder.toString());
&&&&&&&&&&&&&&&&&&& /**
&&&&&&&&&&&&&&&&&&&& * 这里需要分析服务器回传的json格式数据,
&&&&&&&&&&&&&&&&&&&& */
&&&&&&&&&&&&&&&&&&& JSONObject jsonObject = new JSONObject(builder.toString())
&&&&&&&&&&&&&&&&&&&&&&&&&&& .getJSONObject(&calendar&);
&&&&&&&&&&&&&&&&&&& JSONArray jsonArray = jsonObject.getJSONArray(&calendarlist&);
&&&&&&&&&&&&&&&&&&& for(int i=0;i&jsonArray.length();i++){
&&&&&&&&&&&&&&&&&&&&&&& JSONObject jsonObject2 = (JSONObject)jsonArray.opt(i);
&&&&&&&&&&&&&&&&&&&&&&& CalendarInfo calendarInfo = new CalendarInfo();
&&&&&&&&&&&&&&&&&&&&&&& calendarInfo.setCalendar_id(jsonObject2.getString(&calendar_id&));
&&&&&&&&&&&&&&&&&&&&&&& calendarInfo.setTitle(jsonObject2.getString(&title&));
&&&&&&&&&&&&&&&&&&&&&&& calendarInfo.setCategory_name(jsonObject2.getString(&category_name&));
&&&&&&&&&&&&&&&&&&&&&&& calendarInfo.setShowtime(jsonObject2.getString(&showtime&));
&&&&&&&&&&&&&&&&&&&&&&& calendarInfo.setEndtime(jsonObject2.getString(&endshowtime&));
&&&&&&&&&&&&&&&&&&&&&&& calendarInfo.setAllDay(jsonObject2.getBoolean(&allDay&));
&&&&&&&&&&&&&&&&&&&&&&& calendarInfos.add(calendarInfo);
&&&&&&&&&&&&&&&&&&& }
总结,普通形式的只需用JSONObject ,带数组形式的需要使用JSONArray 将其变成一个list。
上一页: &&&&&下一页:相关内容
愤怒的小鸟战斗彩漫相机编辑推荐
电脑壁纸相关专题如题,许多App喜欢使用SQLite或XML存储用户的偏好设置或一些其他数据。然而对于一些轻量的数据,我认为完全没有必要用SQLite,比如Launcher的图标布局。JSON是一种十分轻量级的数据格式,而且Android开发中,解析和Stringify都十分方便,为什么很少有人用呢?
看有人拿 XML 和 JSON 做比较,顺便补一点:XML 是「文档标记语言」,而 JSON 是「数据交互语言」,XML 比起 JSON 描述能力要强,所以在描述复杂文档的时候会选用 XML(例如 Layout 文件)。但是 JSON 比 XML 更为 Human readable、更易编写,也对机器更为友好,所以用 JSON 来储存一些简单的配置是比 XML 要好用得多的(例如大家都知道的 Shadowsocks 就是使用 JSON 进行应用配置)。但是 JSON 天生描述能力不强,它擅长的是描述数据,而非文档(配置其实也是文档的一种),所以稍微复杂的文档是不会使用 JSON 来描述,这也就是为什么会衍生出 YAML、TOML 一类语言的原因(拒绝拥抱 XML 的后果)。===SharedPreferences 是一整套东西啊,PreferencesActivity 也依赖于它。所以对实现 APP 偏好设置来说,它就是「最方便的实现」,你不用关心它底层是用数据结构去储存的,只是 Android 选择用 XML 去描述而已。而 SQLite 是关系数据库,数据间有较复杂关系的,操作需要用到复杂的增删改查,无疑使用 SQLite 是最好的方案。而题主说的一些轻量的数据,确实是持久化为文件更方便。如果是储存 用户偏好设置 还是用 SharedPreferences 来解决方便多了,无需接触到数据格式。如果并非面向用户,而是面向应用或面向开发者的话(例如一些 应用配置、常用数据),JSON 是不错的选择,毕竟 JSON 比起 XML 来说更易阅读与调试。当然 JSON 也不是唯一选择,应用配置的话用 YAML 或 TOML 更好(更强的描述能力,更少冗余),只不过 JSON 应用更广泛罢了。
/kotandroid&实现新闻列表界面的 JSON 数据解析和填充
实现新闻列表界面的 JSON 数据解析和填充
成为极客学院VIP,观看全部课程
VIP会员可无限制观看所有课程,下载资料与源码,享受技术问答支持,年会员还可以下载720p高清视频。
或者可以观看以下免费课程
视频太卡?试试切换线路
本课时进行示例演示,结合流程图讲解 PHP、MySQL、Android 综合使用来实现新闻客户端的原理。
本课时介绍在 MySQL 中新建数据库和相应的表、字段,添加初始数据,在 PHP 中连接数据库,查询对应的新闻项并生成 JSON 数据,实现供外部程序访问的功能。
本课时讲解在 XML 中添加 ListView,使用 BaseAdapter 作为其适配器,完成新闻列表项布局的创建。
本课时讲解编写网络工具类实现网络资源的获取,并将获取到的 JSON 数据解析,显示在 ListView 上面。
本课时讲解为 ListView 添加点击事件,实现点击某条新闻后跳转到新闻详情浏览页的功能。
只有成为VIP会员才能提问&回复,快吧!如果你还没有账号你可以一个账号。
添加新技术问题
课程 [实现新闻列表界面的 JSON 数据解析和填充]
中已存在问题
添加新技术问题
问题描述越详细,被解答的速度越快
有新回答时请邮件提醒我
着急,拜托快点
不急,慢慢解决
关联课程 [实现新闻列表界面的 JSON 数据解析和填充]
正在读取中...
正在读取中...

我要回帖

更多关于 json文件中的注释 的文章

 

随机推荐