安卓手机json格式怎么打开,json解析源码
1.JSON分析
(1) .分析Object之一的:
分析方法:
1
jsonobjectdemojson=newjsonobject (JSON字符串);
2
string URL=demo JSON.getstring (' URL );
(2) .分析Object的二:
1
{'name':'android ',' name':'iphone'}
分析方法:
1
jsonobjectdemojson=newjsonobject (JSON字符串);
2
string name=demo JSON.getstring (' name );
3
string version=demo JSON.getstring (version );
4
system.out.println (' name : ' name ',version:' version );
(3) .分析Array之一的:
1
{ ' number ' : [ 1,2,3 ] }
分析方法:
1
jsonobjectdemojson=newjsonobject (JSON字符串);
2
jsonarraynumberlist=demo JSON.getjsonarray (' number );
3
for(intI=0; I
4
//数组中的类型为int,因此与getInt、其他getString、getLong共用
5
系统. out.println (number list.getint (I ) );
6
}
(4) .分析Array的二:
1
{'number':[[1]、[2]、[3]]}
分析方法:
1
//遍历嵌套数组
2
jsonobjectdemojson=newjsonobject (JSON字符串);
3
jsonarraynumberlist=demo JSON.getjsonarray (' number );
4
for(intI=0; I
5
//获取数组中的数组
6
system.out.println (number list.getjsonarray (I ).getInt(0)0);
7
}
(5) .分析Object和Array:
1
{ ' mobile ' : [ { ' name ' : ' Android ' },{'name':'iphone'}]}
分析方法:
1
jsonobjectdemojson=newjsonobject (JSON字符串);
2
jsonarraynumberlist=demo JSON.getjsonarray (' mobile );
3
for(intI=0; I
4
system.out.println (number list.getjsonobject (I ).getstring('name ' );
5
}
所以,我发现get之后会跟着你想要的结果类型。 getType,这有助于理解。
)6)在. optType:的上例中,如果使用getType找不到节点,则抛出异常。
如果使用optType找不到节点,则返回null或默认值。
1
//URL节点无,抛出异常
2
string URL=demo JSON.getstring (' URL );
3
对于无//URL节点、空、基本类型,返回默认值
4
string URL=demo JSON.optstring (' URL );
(7) .通过UTF-8的BOM磁头分析JSON异常
如果将json文件另存为utf-8,则在windows平台上,bom标头“EF BB EF”字节将显示在文本的开头(必须使用十六进制工具打开)。
解决方法有两种。
使用UltraEdit打开json文件并将其另存为时,可以选择格式UTF-8,在没有BOM头但仍然不行的情况下在记事本中打开,并另存为UTF-8,然后多次尝试。
b .使用代码处理剪切json主体的内容:
1
String jsonString=getJsonString (;
2
jsonString = jsonString.substring(jsonString.indexOf("{"),jsonString.lastIndexOf("}")+1);
2.JSON必知
(1).JSON是一种轻量级的数据交换格式
(2).JSON基于两种数据结构:Object和Array。其中Object是“名称/值”对的集合。
(3).对象:大括号,每一组string-value结合以","分隔,string和value以冒号分隔。
(4).数组:
(5).string由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。
(6).value可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array)。这些结构可以嵌套。
(7).空白可以加入到任何符号之间,包括空格,tab,回车,换行等。
(8).举例:
a.Object实例:
01
{
02
"Image": {
03
"Width": 800,
04
"Height": 600,
05
"Title":"View from 15th Floor",
06
"Thumbnail": {
08
"Height": 125,
09
"Width":"100"
10
},
11
"IDs": [116, 943, 234, 38793]
12
}
13
}
b.Array实例:
01
[
02
{
03
"precision":"zip",
04
"Latitude": 37.7668,
05
"Longitude": -122.3959,
06
"Address":"",
07
"City":"SAN FRANCISCO",
08
"State":"CA",
09
"Zip":"94107",
10
"Country":"US"
11
},
12
{
13
"precision":"zip",
14
"Latitude": 37.371991,
15
"Longitude": -122.026020,
16
"Address":"",
17
"City":"SUNNYVALE",
18
"State":"CA",
19
"Zip":"94085",
20
"Country":"US"
21
}
22
]
3.小结
很简单 ,很基础,积水方能成江,累砖才可筑楼。
接下来举两个实际的例子:
;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。
转:http://blog.163.com/tuchengju@126/blog/static/38071165201162254625961/
关注公众号,分享干货,讨论技术
java解析json字符串详解(两种方法)
一.使用JSONObject来解析JSON数据官方提供的,所以不需要导入第三方jar包:直接上代码,如下 private void parseJSONWithJSONObject(String Jso ...
JavaScript如何处理解析JSON数据详解
JSON (JavaScript Object Notation)一种简单的数据格式,比xml更轻巧. JSON 是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON ...
Drawable实战解析:Android XML shape 标签使用详解(apk瘦身,减少内存好帮手)
Android XML shape 标签使用详解 一个android开发者肯定懂得使用 xml 定义一个 Drawable,比如定义一个 rect 或者 circle 作为一个 View 的背景. ...
最强常用开发库总结 - JSON库详解
最强常用开发库总结 - JSON库详解 JSON应用非常广泛,对于Java常用的JSON库要完全掌握.@pdai JSON简介 JSON是什么 JSON 指的是 JavaScript 对象表示法(Ja ...
[Android新手区] SQLite 操作详解--SQL语法
该文章完全摘自转自:北大青鸟[Android新手区] SQLite 操作详解--SQL语法 :http://home.bdqn.cn/thread-49363-1-1.html SQLite库可以解 ...
Android Animations 视图动画使用详解!!!
转自:http://www.open-open.com/lib/view/open1335777066015.html Android Animations 视图动画使用详解 一.动画类型 Andro ...
Android高效率编码-第三方SDK详解系列(三)——JPush推送牵扯出来的江湖恩怨,XMPP实现推送,自定义客户端推送
Android高效率编码-第三方SDK详解系列(三)--JPush推送牵扯出来的江湖恩怨,XMPP实现推送,自定义客户端推送 很久没有更新第三方SDK这个系列了,所以更新一下这几天工作中使用到的推送, ...
【Android 应用开发】Ubuntu 下 Android Studio 开发工具使用详解 (旧版本 | 仅作参考)
. 基本上可以导入项目开始使用了 ... . 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/21035637 ...
Angular Npm Package.Json文件详解
Angular7 Npm Package.Json文件详解 近期时间比较充裕,正好想了解下Angular Project相关内容.于是将Npm官网上关于Package.json的官方说明文档进行了 ...
随机推荐
[原创]Linux-day1
原创:转发务必注明出处http://www.cnblogs.com/0zcl/p/6077298.html 一.Linux的基本原则 由目的单一的小程序组成:组合小程序完成复杂任务 一切皆文件 尽量避 ...
SQL防注入程序 v1.0
/// ***************C#版SQL防注入程序 v1.0************ /// *使用方法: /// 一.整站防注入(推荐) /// 在Global.asax.cs中查找App ...
Office 365 for TechNet 版本国家地区没有中国选项
TechNet订阅用户提供一个Office365的注册,今天想测试一下,结果发现TechNet版本的没有中文地区选项 以下是官网E3使用账号注册,有中国地区 以下为TechNet订阅的office36 ...
java_设计模式_命令模式_Command Pattern(2016-08-09)
理解还不到位,先窜出来.等过一阵子再看,再理解. 定义:将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能. 类型:行为类模式 类 ...
UVa 11796 计算几何
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
Android Studio错误
晚上一直在折腾android studio这个东西,弄的蛋疼.. 之前是有用的,然后今天闲的没事干,更新了下,反正弄出了一大堆的错误.. 错误:failed to find Build Tools r ...
JavaScript 实现数组的foreach
Array.prototype.forEach = function (action) { for (var i = 0; i < this.length; i++) { action(this ...
如何在微软Hyper-V下发挥SQL Server最大功效
要建设稳定运行的虚拟化SQL Server系统,关键是确保虚拟化管理软件配置能提供数据库所需的资源.SQL Server是CPU密集型技术,因此支撑它的虚拟机需要能获得充足的处理器资源,同时不能引起与 ...
LeetCode 363:Max Sum of Rectangle No Larger Than K
题目链接 链接:https://leetcode.com/problems/max-sum-of-rectangle-no-larger-than-k/description/ 题解&代码 1 ...
Activiti中子流程:SubProcess,CallActiviti的区别
子流程:SubProcess,CallActiviti的区别 https://community.alfresco.com/thread/221771-call-activiti-vs-subproc ...