节省Json流量

Posted D梦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了节省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长度31。

下面实现该方法:

因为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

    }

 

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

以上是关于节省Json流量的主要内容,如果未能解决你的问题,请参考以下文章

图片流量节省大杀器:基于CDN的sharpP自适应图片技术实践

移动测试之-流量测试方案

pdfjs优化,实现按需加载,节省流量和内存

Flutter——缓存B站视频,节省你的流量

JMeter学习(三十五)使用jmeter来发送json/gzip格式数据

JSON