android 数据解析 JSON 开发详解+视频

什么是json:

JSONJavaScript Object Natation的简称,它是一种轻量级的数据交换格式,非常适合服务器与JavaScript的交互。JSON易于人阅读和编写。同时也易于机器解析和生成。JSON采用完全独立语言的文本格式,但是也是用了类似于C语言家族的习惯(包括C,C++,C#,JAVA,JavaScript,Perl,Python等)。这些特性使JSON成为理想的数据交换语言。


 JSON优势

JSON和XML的比较

  • JSON比XML体积小
  • JSON和JavaScript交互更加方便
  • JSON对数据的描述性没有XML好
  • JSON的速度要远远大于XML
  • JSON的解析要比XML的解析要方便

两种数据结构

  一种是以 (key/value) 对形式存在的无序的 jsonObject 对象,一个对象以“ {” (左花括号)开始,“ }” (右花括号)结束。每个“名称”后跟一个“ :” (冒号);“‘名称 / 值’对”之间使用“ ,” (逗号)分隔。
 

例如:{"name": "xiaoli"},这就是一个最简单的json对象,对于这种数据格式,key值必须要是string类型,而对于value,则可以是stringnumberobjectarray等数据类型


  另一种数据格式就是有序的 value 的集合,这种形式被称为是 jsonArray ,数组是值( value )的有序集合。一个数组以“ [” (左中括号)开始,“ ]” (右中括号)结束。值之间使用“ ,” (逗号)分隔。
 

例如:[{“name”: “xiaoli”}{“name”:”xiaoming”},]这就是一个最简单的jsonArray对象,对于这种数据格式, 值(value)可以是双引号括起来的字符串(string)、数值(number)truefalsenull、对象(object)或者数组(array)。这些结构可以嵌套。


json object  生成:

<span style="font-size:18px;">private String createJson() throws JSONException
    {
        JSONObject obj = new JSONObject();
        obj.put("name", "xiaoli");
        return obj.toString();
    }</span>

json array  生成:

<span style="font-size:18px;">private String createJsonArray() throws JSONException
	{
		JSONArray array = new JSONArray();
		JSONObject obj = new JSONObject();
		obj.put("name", "xiaoli");
		JSONObject obj1 = new JSONObject();
		obj1.put("name", "xiaowang");
		
		array.put(obj);
		array.put(obj1);
		return array.toString();
	}</span>

json object 解析:

<span style="font-size:18px;">private void parseJson(String json) 
	{
		try
		{
			JSONObject obj = new JSONObject(json);
			String name = obj.getString("name");
			System.out.println("name:"+name);
		}catch (JSONException e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}</span>

json array 解析:

<span style="font-size:18px;"> private void  parseJsonArray(String array) {
    	
    	try {
			JSONArray jarray = new JSONArray(array);
			
			for(int i = 0;i<jarray.length();i++)
			{
				JSONObject obj = jarray.getJSONObject(i);
				Log.e("obj:",obj.toString());
				String value = obj.getString("name");
				Log.e("value:",value);
			}
		} catch (JSONException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}</span>


JSON遍历:

在个别情况下,可能key是未知的,这时可能需要遍历JSONObject

    import net.sf.json.JSONObject;  
      
    String json = "{\"name\":\"lss\"}";  
            JSONObject jsonObj = JSONObject.fromObject(json);  
            String name = jsonObj.getString("name");  
              
            Iterator it = jsonObj.keys();  
            List<String> keyListstr = new ArrayList<String>();  
            while(it.hasNext()){  
                keyListstr.add(it.next().toString());  
            }  


视频学习:http://edu.csdn.net/course/detail/2295

 

json demo 下载地址:

http://download.csdn.net/detail/q610098308/9220179

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

恋恋西风

up up up

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值