永发信息网

android 怎么看json数据格式

答案:3  悬赏:50  手机版
解决时间 2021-01-27 10:04
android 怎么看json数据格式
最佳答案
JSON有两种表示结构,对象和数组。
对象结构以”{”大括号开始,以”}”大括号结束。中间部分由0或多个以”,”分隔的”key(关键字)/value(值)”对构成,关键字和值之间以”:”分隔,语法结构如下
{
    key1:value1,
    key2:value2,
}其中关键字是字符串,而值可以是字符串,数值,true,false,null,对象或数组


数组结构以”[”开始,”]”结束。中间由0或多个以”,”分隔的值列表组成,语法结构如下
[
    {
        key1:value1,
        key2:value2 
    },
    {
         key3:value3,
         key4:value4   
    }
]
全部回答
android的json解析部分都在包org.json下
给服务端发送请求后,服务端会返回一连串的数据,这些数据在大部分情况下都是XML格式或者JSON格式。然后JSON相对XML来说解析相对方便一些,所以先说说JSON的解析。 JSON的基本数据格式有这几种: 1.一个JSON对象——JSONObject {"name":"胡小威" , "age":20 , "male":true} 2.一个JSON数组——JSONArray [{"name":"胡小威" , "age":20 , "male":true},{"name":"赵小亮" , "age":22 , "male":false}] 3.复杂一点的JSONObject {"name":"胡小威", "age"=20, "male":true, "address":{"street":"岳麓山南", "city":"长沙","country":"中国"}} 4.复杂一点的JSONArray [ {"name":"胡小威", "age"=20, "male":true, "address":{"street":"岳麓山南", "city":"长沙","country":"中国"}}, {"name":"赵小亮", "age"=22, "male":false, "address":{"street":"九州港", "city":"珠海","country":"中国"}} ] 5.来个更复杂的,这是我从爱帮公交上扒取的数据 {"buses":{"bus":[{"last_foot_dist":"0","time":"37","segments":{"segment":[{"line_name":"立珊专线(中南大学学生公寓-长沙火车站)","foot_dist":"362","stat_xys":"","stats":"岳麓山南;湖南师大;二里半;岳麓山北;市四医院;华图教育(太平街口);牛耳教育(南阳街口);韭菜园;曙光路口;长岛路口;长沙火车站","end_stat":"长沙火车站","line_xys":"","line_dist":"7535","start_stat":"岳麓山南"}]},"foot_dist":"362","dist":"7897"},{"last_foot_dist":"0","time":"41","segments":{"segment":[{"line_name":"旅1路(科教新村-长沙火车站)","foot_dist":"337","stat_xys":"","stats":"岳麓山南;湖南师大;二里半;岳麓山北;市四医院;华图教育(太平街口);蔡锷中路口;韭菜园;乔庄;曙光路口;长岛路口;五一东村;车站路口;长沙火车站","end_stat":"长沙火车站","line_xys":"","line_dist":"7822","start_stat":"岳麓山南"}]},"foot_dist":"337","dist":"8159"}]}} 接下来是解析部分 一、直接解析 1.{"name":"胡小威" , "age":20 , "male":true} Java代码 public void parseJsonObject(String json) { try { JSONObject jsonObject = new JSONObject(json); String name = jsonObject.getString("name"); int age = jsonObject.getInt("age"); boolean male = jsonObject.getBoolean("male"); //接下来该干嘛干嘛 } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } } 2.[{"name":"胡小威" , "age":20 , "male":true},{"name":"赵小亮" , "age":22 , "male":false}] Java代码 public void parseJSONArray(String json) { try { JSONArray jsonArray = new JSONArray(json); for (int i = 0; i < jsonArray.length(); i++) { jsonObject = jsonArray.getJSONObject(i); String name = jsonObject.getString("name"); int age = jsonObject.getInt("age"); boolean male = jsonObject.getBoolean("male"); //接下来该干嘛干嘛 } } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } } 3.{"name":"胡小威", "age"=20, "male":true, "address":{"street":"岳麓山南", "city":"长沙","country":"中国"}} Java代码 public void parseJsonPerson(String json) { try { JSONObject jsonObject = new JSONObject(json); String name = jsonObject.getString("name"); int age = jsonObject.getInt("age"); boolean male = jsonObject.getBoolean("male"); JSONObject addressJSON = jsonObject.getJSONObject("address"); String street = addressJSON.getString("street"); String city = addressJSON.getString("city"); String country = addressJSON.getString("country"); Address address = new Address(street, city, country); Person person = new Person(name, age, male, address); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } } 4. [ {"name":"胡小威", "age"=20, "male":true, "address":{"street":"岳麓山南", "city":"长沙","country":"中国"}}, {"name":"赵小亮", "age"=22, "male":false, "address":{"street":"九州港", "city":"珠海","country":"中国"}} ] Java代码 public void parseJsonArrayPerson(String json) { List persons = new ArrayList(); try { jsonArray = new JSONArray(json); for (int i = 0; i < jsonArray.length(); i++) { jsonObject = jsonArray.getJSONObject(i); String name = jsonObject.getString("name"); int age = jsonObject.getInt("age"); boolean male = jsonObject.getBoolean("male"); JSONObject addressJSON = jsonObject.getJSONObject("address"); String street = addressJSON.getString("street"); String city = addressJSON.getString("city"); String country = addressJSON.getString("country"); Address address = new Address(street, city, country); Person person = new Person(name, age, male, address); persons.add(person); Log.v("juno", person.toString()); } } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } Log.v("juno", persons.toString()); } 5. {"buses":{"bus":[{"last_foot_dist":"0","time":"37","segments":{"segment":[{"line_name":"立珊专线(中南大学学生公寓-长沙火车站)","foot_dist":"362","stat_xys":"","stats":"岳麓山南;湖南师大;二里半;岳麓山北;市四医院;华图教育(太平街口);牛耳教育(南阳街口);韭菜园;曙光路口;长岛路口;长沙火车站","end_stat":"长沙火车站","line_xys":"","line_dist":"7535","start_stat":"岳麓山南"}]},"foot_dist":"362","dist":"7897"},{"last_foot_dist":"0","time":"41","segments":{"segment":[{"line_name":"旅1路(科教新村-长沙火车站)","foot_dist":"337","stat_xys":"","stats":"岳麓山南;湖南师大;二里半;岳麓山北;市四医院;华图教育(太平街口);蔡锷中路口;韭菜园;乔庄;曙光路口;长岛路口;五一东村;车站路口;长沙火车站","end_stat":"长沙火车站","line_xys":"","line_dist":"7822","start_stat":"岳麓山南"}]},"foot_dist":"337","dist":"8159"}]}} Java代码 public List parseJSON(String str){ Log.d("返回的JSON数据:", str); List busList = new ArrayList(); try { JSONObject jsonObject = new JSONObject(str); JSONObject busesJSON = jsonObject.getJSONObject("buses"); JSONArray busJSArray=busesJSON.getJSONArray("bus"); for(int i=0;i>(){}.getType(); Gson gson = new Gson(); LinkedList users = gson.fromJson(jsonData, listType); for (Iterator iterator = users.iterator(); iterator.hasNext();) { User user = (User) iterator.next(); System.out.println(user.getUsername()); System.out.println(user.getUserId()); } 我一般是采用直接解析,添加类库神马的最讨厌了··· 还有,抱怨一下,iteye的编辑弱爆了!!! 转载
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
已知函数F(X)=x平方_4ax+a平方关于X 的不等式
卓贤托管(农林横路)地址好找么,我有些事要过
西交利物浦和电子科技大学的格拉斯哥学院各有
社会生产力发展的主要标志是( )。
燕翼怡谋是什么意思
男士米色西服上衣配什么颜色的裤子
宏一汽车销售服务店地址在什么地方,想过去办
束刍的意思是什么啊?知道的请说下!
关于科比的短语
请酒中达人给白酒取个名字,名字中要带“三井
比亚迪的车到底怎么样,几年以后毛病多不多
启迪阁地址有知道的么?有点事想过去
和平车行地址好找么,我有些事要过去
牛肉馅饼的家常做法大全怎么做好吃视频
玩过的一个游戏大厅,有麻将,斗地主五子棋捕
推荐资讯
dm168云狗怎么使用走路时报的不详细
急!给15个成语,并解释。谢谢!
理发(光明路)地址在什么地方,想过去办事
前行的人和后悔的人永远无法在碰面了。这句话
保定市富昌中专怎么样
驴友地址在哪,我要去那里办事
e通网络地址在什么地方,想过去办事
中国工商银行(阳泉市德胜街支行)地址在什么地
石墨烯远红外电热膜有什么特点?
瑜轩五行属什么
流星花园台版百度云,谢谢
贱姿的意思是什么啊?知道的请说下!
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?