js怎么将数字转化为unicode码 如何优化很长的JSON数据?
如何优化很长的JSON数据?
作为一个JSON规范,优化的空间有限,收益低,但是没有优化的空间。我们可以从以下几个角度入手:
1.优化传输大小,打开服务器的gzip压缩就可以了,不过会多占用一点CPU。
2.使用较短的键,出于可读性考虑,通常不推荐使用这种键。
3.打开重复引用和循环引用。Java实现的一些JSON库支持重复和循环引用,这可以减少JSON文本大小。例如,当相同的对象出现在传输的数据中时,fastjson默认打开引用检测,并将相同的对象作为引用{$r:写入..}.
如图所示:
对于第二个LoanOrder 02,fastjson只解析和加载贷款订单部分的数据。对于 "$ ref "fastjson不会加载贷方 的数据,因为 "法斯特森 的循环引用检测机制被打开 "。
这可以大大减少对重复对象的处理,但问题是大多数JSON库,包括浏览器客户端,都不支持这个特性。
4.如果它很小并且兼容,建议使用更小的序列化方法,比如msgpack。
MessagePack是一种有效的二进制序列化格式。它可以让你在多种语言之间交换数据,比如JSON。但是它更快更小。
不仅小,而且快,比JSON快多了。
下面是JSON、Protobuf、Thrift和MessagePack的序列化大小对比,都比JSON小。
JS 16进制有什么用?
js的二进制转换可以分为二进制转换、八进制转换、十进制转换和十六进制转换,可以直接使用对象来实现。toString():
运行以下代码
//十进制到十六进制(10)。toString(16) // gta
//八进制到十六进制(012)。toString(16) // gta
//十六进制到十进制(0x16)。toString(10) // gt22
//十六进制到八进制(0x16)。toString(8) // gt26
//将十进制转换为二进制//gt (1111)。tostring (2)//gt 10001010111
//将八进制转换为二进制//gt(01111)。toString(2) //gt1001001001
//十六进制到二进制//gt (0x16)。tostring (2)//gt10110
如果要处理二进制到十进制、十六进制到十进制以及八进制到十进制,需要使用paresInt方法:
运行以下代码
//二进制到十进制;parseInt(10,2) //gt2
//二进制到十进制;parseInt(100,2) //gt4
//十六进制到十进制的parseInt(12,16) //gt18
//Parseint (12,8)从八进制到十进制//GT10
十六进制转换
如果要实现十进制之间的转换,可以先用parseInt方法转换成十进制,再用toString(参数)转换成不同的十进制。
使用toString和parseInt方法可以实现二进制转换工具:
运行以下代码
lt!DOCTYPE html PUBLIC-//W3C//DTD XHTML 1.0 Transitional//EN
lthtml
ltheadgt
lt meta http-equiv content-type content text/html charset utf-8/gt lt/title gt无标题文档lt/titlgt。
lt/headgt
ltbodygt
ltscript languagejavascriptgt函数test() { var (in)。value var (title) var tynum,to for(var ioilttype . length I){ if(type[I].selected) tynumparseInt(类型[i])。value)} switch(tynum){ cas:toparsent(num)。toString(2)break cas:toparsent(num)。toString(8)break cas:toparsent(num)。toString(16)break cas: topar sent(num,2)break cas:toparsent(num,8)break cas:toparsent(num,16)break cas:toparsent(num,2)。toString(8)break cas:toparsent(num,8)。toString(2)break cas:toparsent(num,2)。toString(16)break cas:toparsent(num,16)。toString(2)break cas:toparsent(num,8)。toString(16)break cas:toparsent(num,16)。tostring (8) break} if (isnan (to))输入非法字符。哦(出)。value to } lt/Script gt lt select nam: 152 pxgt lt选项值1gt十进制到二进制lt/ option gt lt选项值2gt十进制到八进制lt/option gt lt选项值3gt十进制到十六进制lt/option gt lt选项值4gt二进制到十进制lt/option gt lt选项值5g gt八进制到十进制lt/option gt lt选项值6g gt十六进制到十进制lt/option gt lt选项值7gt二进制到八进制lt/option gt lt选项值8gt八进制到二进制lt 选项gt lt选项值10g十六进制到二进制lt/option gt lt选项值11gt八进制到十六进制lt/option gt lt选项值12gt十六进制到八进制lt/option gt lt/selectgtltbr/gt lt输入类型texti。din/gtltbrgt lt input type text id out/gtltbr/gt lt input type button value change onclick test()/gt lt font color # ff 000 styl: 12 pxgt *注意:当有非法字符时,我们只截断有效字符进行转换lt/fontgt。
lt/bodygt
lt/htmlgt
简单的加密和解密
将一个字符串转换成unicode,再将unicode转换成不同的基系统,实现代码加密:
运行以下代码
lt!DOCTYPE htmlgt
lthtmlgt
ltheadgt
ltmeta charsetutf-8/gt
lttitlegtlt/titlegt
lt/headgt
ltbodygt
ltscriptgt functionen (code,H){//简单jS加密解密ltbrgt//code为对应字符串,H为(2,8,10,16),为十进制ltbrgtfunction en(code,H){ var monyer new array()var I for(ioiltcode。蒙耶尔。tostring(h)_//就是把字符串转换成ascll代码,然后变成你想要的小数} function de (code,h) {var i,s。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。