zoukankan      html  css  js  c++  java
  • 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 demo 下载地址:

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

  • 相关阅读:
    bzoj2815: [ZJOI2012]灾难
    bzoj1188: [HNOI2007]分裂游戏
    bzoj4538: [Hnoi2016]网络
    bzoj3594: [Scoi2014]方伯伯的玉米田
    bzoj2595: [Wc2008]游览计划
    bzoj3277: 串
    Django开发:(3.2)ORM:多表操作
    Django开发:(3.1)ORM:单表操作
    Django:(2)视图层&模板层
    Django开发:(1)django基础 & url控制器
  • 原文地址:https://www.cnblogs.com/sharecenter/p/5621040.html
Copyright © 2011-2022 走看看