JSON,JSONObject和JSONArray总结
一 JSON
JSON的全称是”JavaScript Object Notation”,意思是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式。XML也是一种数据交换格式,为什么没有选择XML呢?因为XML虽然可以作为跨平台的数据交换格式,但是在JS(JavaScript的简写)中处理XML非常不方便,同时XML标记比数据多,增加了交换产生的流量,而JSON没有附加的任何标记,在JS中可作为对象处理,所以我们更倾向于选择JSON来交换数据。这篇文章主要从以下几个方面来说明JSON。
JSON有两种表示结构,对象和数组。
对象结构以”{”大括号开始,以”}”大括号结束。中间部分由0或多个以”,”分隔的”key(关键字)/value(值)”对构成,关键字和值之间以”:”分隔,语法结构如代码。其中key是字符串,而value可以是字符串,数值,true,false,null,对象或数组
{
key1:value1,
key2:value2,
...
}
[
{
key1:value1,
key2:value2
},
{
key4:value4
}
]
二 数据表现形式(JSONObject,JSONArray)
JSONObject的数据是用 { } 来表示的,
例如: { "id" : "123", "courseID" : "huangt-test", "title" : "提交作业", "content" : null }
而JSONArray,顾名思义是由JSONObject构成的数组,用 [ { } , { } , ...... , { } ] 来表示
例如: [ { "id" : "123", "courseID" : "huangt-test", "title" : "提交作业" } , { "content" : null, "beginTime" : 1398873600000 "endTime" } ] ;表示了包含2个JSONObject的JSONArray。
可以看到一个很明显的区别,一个用的是 { } ,一个最外面用的是 [ ] ;
三、如何从字符串String获得JSONObject对象和JSONArray对象
JSONObject jsonObject = new JSONObject ( String str);
JSONArray jsonArray = new JSONArray(String str ) ;
四、如何从JSONArray中获得JSONObject对象
大家可以把JSONArray当成一般的数组来对待,只是获取的数据内数据的方法不一样
JSONArray jsonArray = (JSONArray) jsonObject.get("content");
for (int i = 0; i < jsonArray.size(); i++) {
//第一种
JSONObject jsonObject = (JSONObject)jsonArray.get(i);
String status = String.valueOf(jsonObject1.get("status"));
//第二种
JSONObject jsonObject = jsonArray.getJSONObject(i) ;
String status = String.valueOf(jsonObject1.get("status"));
}
两者都可。第一种注意转换