Android入门之json解析
来源:互联网 发布:证券开户数据 编辑:程序博客网 时间:2024/05/19 04:26
首先,JSON是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解析和生成。
JSON建构于两种结构:“名称/值”对的集合。不同的语言中,它被理解为对象,记录等。
值的有序列表。大部分语言中,它被理解为数组。
JSON具有以下这些形式:
对象(object)是一个无序的“名称/值”对的集合。一个对象以“{”开始,“}”结束。每个名称之后跟一个“:”,“名称/值”对之间使用“,”分隔。
数组(array)是值的有序集合,一个数组以“[”开始,“]”结束。值之间用逗号分隔。
值(value)可以是双引号括起来的字符串,数值(number)、true、false、null、对象,或者数组。这些结构可以嵌套。
字符串(string)是由双引号包围的任意数量unicode字符的集合,使用反斜线转义。一个字符即一个单独的字符串。
数值(number)与C或者java的数值相似。
- object
- {}
{ members } - members
- pair
pair , members - pair
- string : value
- array
- []
[ elements ] - elements
- value
value , elements - value
- string
number
object
array
true
false
null
- string
- ""
" chars " - chars
- char
char chars - char
- any-Unicode-character-
except-"-or-\-or-
control-character
\"
\\
\/
\b
\f
\n
\r
\t
\u four-hex-digits - number
- int
int frac 然后是json在android中的解析。例如解析以下Json片段:
{
"poster_path":"\/uSHjeRVuObwdpbECaXJnvyDoeJK.jpg",
"adult":false,
"overview":"A teenager finds himself transported to an island where he must help protect a group of orphans with special powers from creatures intent on destroying them.",
"release_date":"2016-09-28",
"genre_ids":[
14
],
"id":283366,
"original_title":"Miss Peregrine's Home for Peculiar Children",
"original_language":"en",
"title":"Miss Peregrine's Home for Peculiar Children",
"backdrop_path":"\/qXQinDhDZkTiqEGLnav0h1YSUu8.jpg",
"popularity":21.385542,
"vote_count":185,
"video":false,
"vote_average":6.1
}
简单的解析有以下代码片段示例:
String reponse=null;
URL url=new URL(requrl);//requrl为获得json内容的网址
HttpURLConnection conn=(HttpURLConnection)url.openConnection();
conn.setRequestMethod("GET");
InputStream in=new BufferedInputStream(conn.getInputStream());
BufferedReader reader=new BufferedReader(new InputStreamReader(in));
StringBuilder sb=new StringBuilder();
String line;
while((line=reader.readLine())!=null) sb.append(line).append('\n');
reponse=sb.toString();
JSONObject js=new JSONObject(reponse);//用JSONObject来获取json对象
JSONArray contacts=js.getJSONArray("result");//用JSONObject来获取json数组
for(int i=0;i<contacts.length();i++){
JSONObjcet c=contacts.getJSONObjcet(i);//获取数组中的对象,每一个对象内容都与上述过程中给出的json代码块格式相同
String id=c.getString("id");
String poster=c.getString("poster_path");
String overview=c.getString("overview");
}
以上是json解析的一些基本的关键代码,在最后的for循环体重已经将上述中给出的json片段中的id、poster_path、overview的内容存储到了变量中。在实际应用中,需要将上述代码段写入try...catch中。网络连接和json解析都是较为耗时的工作,都不能再UI线程中执行。所以上述代码需要利用asynctesk或者是service。
- Android入门之json解析
- JSON解析之入门
- android之Json解析
- Android之JSON解析
- Android之Json解析
- android之json解析
- Android之json解析
- Android 之json解析
- Android之JSON解析
- Android之Json解析
- Android之JSON解析
- android之JSON解析
- Android之解析Json
- Android 之json解析
- android之解析json
- Android入门——数据解析之使用GSON解析JSON字符串(二)
- Android之解析Json数据
- Android之json数据解析
- TIMIT数据集介绍
- Python中对文件夹下的特定格式图像全部读取并转化为数组保存(也可转化为txt文件)
- libuv-v1.9.0版本windows平台上的编译(生成visual studio能打开的工程)
- Linux下的Makefile(一)
- (Caffe,LeNet)IDE单步调试(一)
- Android入门之json解析
- Android常见面试题
- hrbust 1797 Fly【Tarjan强连通+缩点染色+最长路SPFA】好题~
- Android产品研发(十七)-->Hybrid开发
- CSS布局中居中(水平/垂直/水平垂直)问题的总结
- JavaScript中你所不知道的数组ArrayBuffer
- [LeetCode]Sort Colors
- 第88篇 webrtc一对一IOS端研究(一)及php及JS
- 银联支付集成-android studio