zoukankan      html  css  js  c++  java
  • 节省Json流量

    今天在实验当中发现了很不错的节省json流量方式,来做个笔记给大家分享一下。

    如果跟服务器传递键值对的数组,我们一般会采用下面方式

    创建一个字段

    public class kv

    {

    public string key { get; set; };

    public string value { get; set; };

    }

    实例化li

    List<kv> li = new List<kv>();

    添加参数

    li.add(new li{key="cn",value="china"});

    li.add(new li{ key="mn", value="mongol"});

    让后转换成json

    using System.Web.Script.Serialization;命名空间

    JavaScriptSerializer jss=new JavaScriptSerializer();实例化。JavaScriptSerializer()下有Serializer方法,它是把object序列化成json字符串。

    String json=jss.Serialize(li);

    Json的值"[{"key":"cn","value":"china"},{"key":"mn","value":"mongol"}]",json.lenght长度60。

    Js:    var a=JSON.parse(json);

        for (var i = 0; i < a.lenght; i++) {

        alert(a[i].k+":"+a[i].v);

        }

    但发现json字符串里的""value""和""value""很多余!希望是"["cn":"china","mn":"mongol"]", json.lenght长度28。

    下面实现该方法:

    因为Serializer方法接受object,我们可以把Dictionary转换成json。

    Dictionary<string,string> dic = new Dictionary<string,string>();//实例化Dictionary键值对

    添加参数

    dic.add("cn","china");

    dic.add("mn","mongol");

    JavaScriptSerializer jss = new JavaScriptSerializer();

    String json=jss.Serialize(dic);

    Json的值"["cn":"china","mn":"mongol"]"

    Js:    var a=JSON.parse(json);    //序列化

        for(k in a){            //js中for相当于foreach,注意:他会遍历出key的值

        alert(k+":"+a[k]);        //根据已知的key找出对应的value

        }

    对本例子节约了50%的流量哦。

    将来的你,一定会感谢现在拼命努力的你!
  • 相关阅读:
    myBatis源码解析-二级缓存的实现方式
    手写mybatis框架-增加缓存&事务功能
    手写mybatis框架
    myBatis源码解析-配置文件解析(6)
    myBatis源码解析-类型转换篇(5)
    myBatis源码解析-反射篇(4)
    myBatis源码解析-数据源篇(3)
    myBatis源码解析-缓存篇(2)
    Linux Centos下SQL Server 2017安装和配置
    VS2019 查看源码,使用F12查看源码
  • 原文地址:https://www.cnblogs.com/hugjil/p/6081089.html
Copyright © 2011-2022 走看看