永发信息网

android 怎么看json数据格式

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


数组结构以”[”开始,”]”结束。中间由0或多个以”,”分隔的值列表组成,语法结构如下
[
    {
        key1:value1,
        key2:value2 
    },
    {
         key3:value3,
         key4:value4   
    }
]
全部回答
  • 1楼网友:第幾種人
  • 2021-01-27 03:59
android的json解析部分都在包org.json下
  • 2楼网友:行路难
  • 2021-01-27 02:39
给服务端发送请求后,服务端会返回一连串的数据,这些数据在大部分情况下都是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的编辑弱爆了!!! 转载
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯