zoukankan      html  css  js  c++  java
  • JSON数据解析及gson.jar包

    从服务器端接收数据的时候,那些数据必须以浏览器能够理解的格式来发送。

    服务器端的编程语言只能以如下 3 种格式返回数据: HTML XML JSON

    JSON一种简单的数据格式,比xml更轻巧。

    JSON是JavaScript原生格式,这意味着在JavaScript中处理JSON数据不需要任何特殊的API或工具包。

    JSON的规则很简单:对象是一个无序的“‘名称:值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’对”之间使用“,”(逗号)分隔。 规则如下: 1)映射用冒号(“:”)表示。名称:值 2)并列的数据之间用逗号(“,”)分隔。名称1:值1,名称2:值2 3) 映射的集合(对象)用大括号(“{}”)表示。{名称1:值1,名称2:值2} 4) 并列数据的集合(数组)用方括号(“[]”)表示。

    [

       {名称1:值,名称2:值2},

      {名称1:值,名称2:值2}

    ]  

    元素值可具有的类型:string, number, object, array, true, false, null

    JSON 用冒号(而不是等号)来赋值。每一条赋值语句用逗号分开。整个对象用大括号封装起来。

    可用大括号分级嵌套数据。 对象描述中存储的数据可以是字符串,数字或者布尔值。对象描述也可存储函数,那就是对象的方法。

    使用Java读取Json数据: 

     

     1 import java.io.FileReader;
     2 import com.google.gson.JsonArray;
     3 import com.google.gson.JsonObject;
     4 import com.google.gson.JsonParser;
     5 
     6 public class JsonDemo {
     7     public static void main(String []args) throws Exception{
     8         JsonParser parser = new JsonParser() ;
     9         JsonObject object = (JsonObject)parser.parse(new FileReader("src//JsonTest//test.json"));
    10         // 解析string
    11         System.out.println("name = "+object.get("name").getAsString());
    12         // 解析数组
    13         JsonArray array = object.get("like").getAsJsonArray();
    14         for(int i=0;i<array.size();i++){
    15             JsonObject arrayObject = array.get(i).getAsJsonObject() ;
    16             System.out.println("id = "+arrayObject.get("id").getAsInt() + " say = "+arrayObject.get("say").getAsString());
    17         }
    18         // 解析bool类型
    19         System.out.println("key = "+object.get("key").getAsBoolean());
    20     }
    21 }

    Json文件内容:

    1 {
    2     "name":"奶BerBer",
    3     "like":[
    4         {"id":1,"say":"hello java"},
    5         {"id":2,"say":"hello c++"},
    6         {"id":3,"say":"hello python"}
    7         ],
    8     "key":true 
    9 }

    输出结果:

    name = 奶BerBer
    id = 1 say = hello java
    id = 2 say = hello c++
    id = 3 say = hello python
    key = true

    使用Java创建Json数据: 

     1 import com.google.gson.JsonArray;
     2 import com.google.gson.JsonObject; 
     3 
     4 public class JsonDemo {
     5     public static void main(String []args) throws Exception{ 
     6         JsonObject object = new JsonObject();
     7         object.addProperty("name","奶BerBer") ;
     8         
     9         JsonArray array = new JsonArray() ;
    10         
    11         JsonObject lem1 = new JsonObject() ;
    12         lem1.addProperty("id","1");
    13         lem1.addProperty("say","hello java"); 
    14         array.add(lem1) ;
    15         
    16         JsonObject lem2 = new JsonObject() ;
    17         lem2.addProperty("id","2");
    18         lem2.addProperty("say","hello c++"); 
    19         array.add(lem2) ;
    20         
    21         JsonObject lem3 = new JsonObject() ;
    22         lem3.addProperty("id","3");
    23         lem3.addProperty("say","hello python"); 
    24         array.add(lem3) ;
    25 
    26         object.add("like",array) ;
    27         object.addProperty("key","true") ;
    28         
    29         System.out.println(object.toString());
    30     }
    31 }

    运行结果:

    {"name":"奶BerBer","like":[{"id":"1","say":"hello java"},{"id":"2","say":"hello c++"},{"id":"3","say":"hello python"}],"key":"true"}

    Json包下载: 链接:https://pan.baidu.com/s/1kULUbQ3 密码:s98k

  • 相关阅读:
    关于width属性max/min-content和fit-content
    director.js实现前端路由
    第一篇博文
    AtCoder Beginner Contest 120 题解
    AtCoder Beginner Contest 121 题解
    AtCoder Beginner Contest 115 题解
    Python中list的复制及深拷贝与浅拷贝探究
    Python中print()函数不换行的方法
    高斯消元法的C++简单实现
    Python中list作为默认参数的陷阱
  • 原文地址:https://www.cnblogs.com/LexMoon/p/JavaJson.html
Copyright © 2011-2022 走看看