json的概述和简单使用!

一、json概述

json:的全称是  javascript object natation  (javascript对象表示法)

json是一种轻量级的  数据交换格式 是基于EMCAScipt的一个子集,是完全独立于语言的文本格式,因此是一种比较理想的数据交换方式



二、json语法规则

1.数据全都保存在键值对中 数据的常用表示形式 key:value

    key 使用双引号引起来

    value的数据类型

           数字(包括整数和浮点数)、字符串(用双引号引起来)、布尔值(true和false)、null

          对象 (放在大括号中) 例:{ key:value , key:value ,...................... }

           数组  (放在方括号中) 例:[ { key:value },{ key:value },........  ]

2.数据间由都好隔开

            key1:value1 , key2:value2

3.大括号表示对象

           { key1:value1,key2:value2.......... }

4.中括号表示数组

           [ element1, element2,......... ]

三、json两种基础结构

     json只有两种结构

         对象:

            { key1:value1 , key1:value1 ,...................... }

         数组:

            [ { key:value },{ key:value },........  ]

四、json的数据访问

         对象数据的访问:

            json对象应用.键名称   或者 json对象应用[ "键名称" ]

</pre><p></p><pre>
 

<span style="font-size:14px;"> //首先定义一个json对象
 var json={"name":"张三","age":22,"gender":"男"};
//两种访问方式
alert(json.name)
alert(json["age"]+"="+json.gender)
<script></span>

       数组元素访问:

              数组引用的名称[ 元素下标].键名称

<pre name="code" class="html"><pre name="code" class="html"><span style="font-size:14px;"><script type="text/javascript">  
 //定义一个数组 </span>
 var jsonArray=[ {"name":"张三","age":22,"gender":"男"}, 
{"name":"李四","age":21,"gender":"男"},
{"name":"露西","age":18,"gender":"女"} ];
for(var x;x<jsonArray.length;x++){
alert(jsonArray[x].name)
}
 
            

 

五、json应用

     1.使用json数组填充表格数据

<script type="text/javascript">
     //首先定义一个json对象
     var json={"name":"张三","age":22,"gender":"男"};
     //定义一个数组
    var jsonArray=[ {"name":"张三","age":22,"gender":"男"},{"name":"李四","age":21,"gender":"男"},
                    {"name":"露西","age":18,"gender":"女"}   ];
    function  load(){
       var  tableobject=document.getElementById("td")
       //使用for in循环数组</span></span></span></span></span>
       for(var index in jsonArray){
          tableobject.innerHTML+="<tr><td>"+jsonArray[index].name+"</td> <tr>"
       }
    }
</script>
</head>
<body>
   <table  id="td">
      <tr>
         <th>姓名</th>  <th>年龄</th> <th>性别</th>
      </tr>
   </table>
   <bottom  οnclick="load()">添加数据</bottom>
</body>

     2.使用for in循环数组  (参考上部分)

六、在java中使用解析json数据   相互转换

        1.在java中使用google-gson解析json

         google-gson这个工具比较小巧,性能也不错,不要需要其他类库支持。

     

实例:

     功能:

           进行数据的实例化

                1.定义一个json格式的字符串

                 String jsonString="{ 'name':'tom' , 'age':23 , 'gender':'男'  }";

                 2.定义User对象

                 User u1=new User( "tom" , 23 , "男" );

                 User u2=new User( "time" , 20 , "女" );

                 User u3=new User( "lucy" , 18 , "女" );

                 3.定义一个User数组

                 User users=new User[ ]{  u1, u2, u3 };

                 4.定义一个List集合用于保存User元素

                 List<User> list=new ArrayList<User>();

                 list.add(u1);

                 list.add(u2);

                 list.add(u3);

                 5.定义一个Map集合用于保存User元素

                 Map<String,User> umap=new HashMap<String,User>();

                 umap.put("10000", u1);

                 umap.put("10000", u2;

                 umap.put("10000", u3);

                6.创建gson对象两种方式

                 //Gson gs=new GsonBuilder( ).create();   能够设置日期格式等等

                 Gson   gs=new Gson();

         进行java和Gson的相互转换

                            1.把json字符串转换成User对象

                  User  u=gs.fromJson( jsonString , User.class );

                 2.把User对象转换为json格式的字符串

                 jsonString=gs.toJson( u1 );

                 3.把User数组转化为json格式的字符串

                 jsonString=gs.toJson( users );

                 4.把json格式的对象转化为User数组

                 users=gs.fromJson( jsonString , User[ ].class  );

                 5.把List泛型集合转换为json格式的字符串

                 jsonString=gs.toJson( list );

                 6.把json格式的字符串转化为LIst泛型集合

                 list.clear();//清空list

                //对于java的泛型的集合需要使用类型标志

                 TypeToken<List<User>> token=new TypeToken<List<User>>(){  };  //内部类

                 Type type=token.getType();

                 list=gs.fromJson( jsonString , type );

                 7.把Map泛型集合转换为json格式的字符串

                 jsonString=gs.toJson( umap );

                 8.把json格式的字符串转换为Map泛型集合

                  //对于java的泛型集合使用类型标志

                 TypeToken<Map<String,User>> token=new TypeToken<Map<String,User>>(){  };

                 Type type=token.getType();

                             umap=gs.fromJson( jsonString , type );


                           数组和LIst转换成json后还是数组

            Map转过来后是对象



  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值