• JSON笔记


    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。比XML更灵活易用,适合网络数据格式传输。

    网上看到的JSON解析与构造工具主要有org.json和json-lib,评价是org.json更轻量简单,因此先尝试使用org.json

    需要在网上下载json.org.jar jar包,使用时需要导入到工程的lib中。

    JSONObject:可以看作是一个json对象,这是系统中有关JSON定义的基本单元,其包含一对儿(Key/Value)数值。用JSONObject生成的文本,不是按顺序排列的。

    JSONStringer:json文本构建类 ,根据官方的解释,这个类可以帮助快速和便捷的创建JSON text。其最大的优点在于可以减少由于 格式的错误导致程序异常,引用这个类可以自动严格按照JSON语法规则(syntax rules)创建JSON text。每个JSONStringer实体只能对应创建一个JSON text。。其最大的优点在于可以减少由于格式的错误导致程序异常,引用这个类可以自动严格按照JSON语法规则(syntax rules)创建JSON text。每个JSONStringer实体只能对应创建一个JSON text。

    JSONArray:它代表一组有序的数值。将其转换为String输出(toString)所表现的形式是用方括号包裹,数值以逗号”,”分隔(例如:     [value1,value2,value3],大家可以亲自利用简短的代码更加直观的了解其格式)。这个类的内部同样具有查询行为,     get()和opt()两种方法都可以通过index索引返回指定的数值,put()方法用来添加或者替换数值。同样这个类的value类型可以包括:Boolean、JSONArray、JSONObject、Number、String或者默认值JSONObject.NULL object。

    JSONTokener:json解析类

    JSONException:json中用到的异常 

    分别使用JSONObject和JSONStringer构造JSON文本的例子

     1 package jsonDemo;  
     2   
     3 import org.json.JSONException;  
     4 import org.json.JSONObject;  
     5 import org.json.JSONStringer;  
     6 import org.json.JSONArray;
     7 import org.json.JSONTokener; 
     8 import org.junit.Test;  
     9 import java.net.URLDecoder;
    10 import java.net.URLEncoder;
    11 
    12 
    13 public class JSONObjectTest {  
    14   
    15     //@Test  
    16 
    17     private static String prepareJSONObject(){  
    18         JSONObject studentJSONObject = new JSONObject();  
    19         try {  
    20             studentJSONObject.put("name", "Jason");  
    21             studentJSONObject.put("id", 20130001);  
    22             studentJSONObject.put("phone", "13579246810");  
    23         } catch (JSONException e) {  
    24             e.printStackTrace();  
    25         }  
    26           
    27         return studentJSONObject.toString();  
    28     }  
    29       
    30     private static String prepareJSONObject2(){  
    31         JSONStringer jsonStringer = new JSONStringer();  
    32         try {  
    33             jsonStringer.object();  
    34             jsonStringer.key("1");  
    35             jsonStringer.value("11:22:33:44:55:66");  
    36             jsonStringer.key("2");  
    37             jsonStringer.value("12:23:34:45:56:67");  
    38             jsonStringer.key("3");  
    39             jsonStringer.value("99:88:77:66:55:44");  
    40             jsonStringer.endObject();  
    41         } catch (JSONException e) {  
    42             e.printStackTrace();  
    43         }  
    44         return jsonStringer.toString();  
    45     }  
    46     private static String prepareJSONarray(){  
    47         JSONArray jsonArray1 = new JSONArray();  
    48         try {
    49             JSONObject Json = new JSONObject();          
    50             Json.put("key", "value");
    51             jsonArray1.put(Json);
    52         } catch (JSONException e) {  
    53             e.printStackTrace();  
    54         }  
    55         return jsonArray1.toString();  
    56     }  
    57     
    58     //private static String JSONText = "{"id":20130001,"phone":"13579246810","name":"Jason"}";        
    59     private static String getJSONContent(String JSONText){  
    60         JSONTokener jsonTokener = new JSONTokener(JSONText);   
    61         JSONObject macJSONObject;  
    62         String mac1 = null;  
    63         String mac2 = null;  
    64         String mac3 = null;  
    65         try {  
    66             macJSONObject = (JSONObject) jsonTokener.nextValue();  
    67             mac1 = macJSONObject.getString("1");  
    68             mac2 = macJSONObject.getString("2");  
    69             mac3 = macJSONObject.getString("3");  
    70               
    71         } catch (JSONException e) {  
    72             e.printStackTrace();  
    73         }  
    74         return mac1 + "  " + mac2 + "   " + mac3;  
    75     }  
    76     
    77     
    78     
    79     public static void main(String[] args)  {  
    80         //System.out.println(prepareJSONObject());
    81         String jstring=prepareJSONObject2();
    82         System.out.println(jstring); 
    83         String urlStr = URLEncoder.encode(jstring);
    84         System.out.println(urlStr); 
    85         String content= getJSONContent(jstring);
    86         System.out.println(URLEncoder.encode(content));
    87         //System.out.println(prepareJSONarray());
    88     }  
    89       
    90   
    91 }  
  • 相关阅读:
    Git 切换本地分支 切换远程分支
    ThreeJs 模型的缩放、移动、旋转 以及使用鼠标对三维物体的缩放
    ThreeJs 绘制点、线、面
    阿里云短信验证使用(PHP)
    Swoft 容器使用
    Swoft 缓存及Redis使用
    Swoft 图片上传与处理
    使用 webpack 搭建多入口项目
    使用 nodeJs 开发微信公众号(上传图片)
    使用 nodeJs 开发微信公众号(设置自动回复消息)
  • 原文地址:https://www.cnblogs.com/taurusfy/p/5462139.html
Copyright © 2020-2023  润新知