我是靠谱客的博主 风趣耳机,这篇文章主要介绍Android之解析Json数据,现在分享给大家,希望可以做个参考。

复制代码
1
 


JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。

在Android中被广泛运用于客户端和网络(或者说服务器)通信。

JSON 表示名称 / 值对的方式

  按照最简单的形式,可以用下面这样的 JSON 表示"名称 / 值对":

            { "name": "Brett", "lage":22,"sex": "女" } ,这表示了一个JsonObject。

            [{name:"张三:",age:21,sex:"女"},{name:"李斯",age:21,sex:"女"},{name:"王五",age:21,sex:"女"}],使用中括弧表示JsonArray,是json对象数组。

       一、解析第一种单个json对象的json数据。数据从网络上获取。演示实例为 查询手机号码归属地。

      

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
URL url; StringBuffer sb = new StringBuffer(); String line = null; try { url = new URL( "http://api.showji.com/Locating/default.aspx?m=13763089126&output=json&callback=querycallback"); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); InputStream is = conn.getInputStream(); BufferedReader buffer = new BufferedReader( new InputStreamReader(is)); while ((line = buffer.readLine()) != null) { sb.append(line); } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }

此处获取的数据为:

querycallback({"Mobile":"13763******","QueryResult":"True","Province":"广东","City":"湛江","AreaCode":"0759","PostCode":"524000","Corp":"中国移动","Card":"GSM"});

需要截取这个json对象出来。

String js = sb.substring(sb.indexOf("{"), sb.indexOf("}") + 1);

 

下面函数解析json对象,返回一个Callerloc对象

Callerloc是一个实体类

复制代码
1
2
3
4
5
6
7
private Callerloc parse(String json) { Callerloc my = null; if (json == null || json.length() < 1) return null; try { my = new Callerloc(); JSONObject jsonobj = new JSONObject(json);
复制代码
1
2
3
4
5
6
7
8
9
10
my.setMobile(jsonobj.getString("Mobile")); my.setQueryResult(jsonobj.getString("QueryResult")); my.setProvince(jsonobj.getString("Province")); my.setCity(jsonobj.getString("City")); my.setAreaCode(jsonobj.getString("AreaCode")); my.setPostCode(jsonobj.getString("PostCode")); my.setCard(jsonobj.getString("Card")); my.setCorp(jsonobj.getString("Corp"));
复制代码
1
2
3
4
5
6
} catch (JSONException e) { e.printStackTrace(); } return my; }

       二、解析json数组

            json数据为:[{name:"张三:",age:21,sex:"女"},{name:"李斯",age:21,sex:"女"},{name:"王五",age:21,sex:"女"}]

           返回list

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
private ArrayList<myjson> parsem(String json) { myjson my = null; if (json == null || json.length() < 1) return null; try { JSONArray jsonary = new JSONArray(json); ArrayList<myjson> objlist = new ArrayList<myjson>(); for (int i = 0; i < jsonary.length(); i++) { my = new myjson(); JSONObject jsonobj = jsonary.getJSONObject(i); my.set_name(jsonobj.getString("name")); my.set_age(jsonobj.getInt("age")); my.set_sex(jsonobj.getString("sex")); objlist.add(my); } return objlist; } catch (JSONException e) { e.printStackTrace(); } return null; }


 

      

      

最后

以上就是风趣耳机最近收集整理的关于Android之解析Json数据的全部内容,更多相关Android之解析Json数据内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(77)

评论列表共有 0 条评论

立即
投稿
返回
顶部