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%的流量哦。

    将来的你,一定会感谢现在拼命努力的你!
  • 相关阅读:
    REGIONAL SCRUM GATHERING(RSG)2019 CHINA.
    《敏捷革命》读书笔记
    敏捷之旅2017年北京站活动圆满结束
    团队合作的Ground Rules
    开发团队(Team)的主要职责和特征
    敏捷之旅2017年北京站的活动主题和讲师话题征集中
    产品负责人(Product Owner)的主要职责和技能
    战地记者也在使用Scrum
    Scrum由来
    他们是今年最可爱的人——敏捷之旅2017年北京活动志愿者
  • 原文地址:https://www.cnblogs.com/hugjil/p/6081089.html
Copyright © 2011-2022 走看看