码迷,mamicode.com
首页 > Web开发 > 详细

节省Json流量

时间:2016-11-19 20:11:14      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:add   分享   str   json   new   strong   接受   字符串   i++   

今天在实验当中发现了很不错的节省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流量

标签:add   分享   str   json   new   strong   接受   字符串   i++   

原文地址:http://www.cnblogs.com/hugjil/p/6081089.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!