类型转换-cast
描述
类型转换,父对象为util,无子对象。(注意:该控件从WeStudio V1.5.3才支持)
事件
无
属性
无
方法
对象转换
名称 |
功能说明 |
脚本例子 |
|---|---|---|
jsonToJsObject(json) |
JSON字符串转换为JS对象 |
var json = '{"id": 123, "value": "abcd"}';
var obj = util.cast.jsonToJsObject(json); //转换json为JS对象
util.console.log('id:' + obj.id + ' value:' + obj.value);
|
objectToJson(obj) |
JS对象转换为JSON字符串 |
var obj = {id: 123, value: "abcd"};
var json = util.cast.objectToJson(obj); //转换JS对象为json
util.console.log(json);
|
xmlToJsObject(xml) |
XML字符串转换为JS对象 |
var xml = '<os><ver>1.9.2</ver><interval>1</interval></os>';
var obj = util.cast.xmlToJsObject(xml); //转换xml为JS对象
util.console.log('os:' + obj.os.ver + ' interval:' + obj.os.interval);
|
objectToXml(obj) |
JS对象转换为XML字符串 |
var obj = { os: { ver: "1.9.2", interval: 1 } };
var xml = util.cast.objectToXml(obj); //转换JS对象为xml
util.console.log(xml);
|
LRC/CRC计算
名称 |
功能说明 |
脚本例子 |
|---|---|---|
calculateLRC(data) |
计算数组data所有元素的LRC校验值,返回长度为2的字节数组,高位在前 |
var data = [0xaa, 0xbb, 0xcc, 0xdd];
var lrc = util.cast.calculate(data); //计算所有元素的LRC
|
calculateLRC(data, len) |
计算数组data从头开始长度为len的数据LRC校验值,返回长度为2的字节数组,高位在前 |
var data = [0xaa, 0xbb, 0xcc, 0xdd];
var lrc = util.cast.calculate(data, 3); //计算前3个元素的LRC
|
calculateCRC16(data) |
计算数组data所有元素的CRC-16校验值,返回长度为2的字节数组,低位在前 |
var data = [0xaa, 0xbb, 0xcc, 0xdd];
var crc = util.cast.calculateCRC16(data); //计算所有元素的CRC
|
calculateCRC16(data, len) |
计算数组data从头开始长度为len的数据CRC-16校验值,返回长度为2的字节数组,低位在前 |
var data = [0xaa, 0xbb, 0xcc, 0xdd];
var crc = util.cast.calculateCRC16(data, 3); //计算前3个元素的CRC
|
字符串转换
名称 |
功能说明 |
脚本例子 |
|---|---|---|
intToHexString(value, num) |
整数转换为16进制字符串,num表示16进制数的位数,不够位数自动补0 |
var str = util.cast.intToHexString(10, 2); // 返回 '0a' |
arrayToHexString(data) |
数组转换成16进制字符串(空格分隔) |
var data = [0xaa, 0xbb, 0xcc, 0xdd];
var str = util.cast.arrayToHexString(data); // 'aa bb cc dd'
|
arrayToHexString(data, bits) |
数组按照比特位(8位,16位或者32位),转换成16进制字符串(空格分隔) |
var data = [0xaa, 0xbb, 0xcc, 0xdd];
var str = util.cast.arrayToHexString(data, 16); // 'aabb ccdd'
|
arrayToHexString(data, separator) |
数组转换成16进制字符串(separator分隔) |
var data = [0xaa, 0xbb, 0xcc, 0xdd];
var str = util.cast.arrayToHexString(data, ','); // 'aa,bb,cc,dd'
|
arrayToHexString(data, separator, bits) |
数组按照比特位(8位,16位或者32位)转换成16进制字符串(separator分隔) |
var data = [0xaa, 0xbb, 0xcc, 0xdd];
var str = util.cast.arrayToHexString(data, ',', 16); // 'aabb,ccdd'
|
hexStringToArray(str) |
以空格为分隔符的16进制字符串转换成字节数组 |
var data = util.cast.hexStringToArray('aa bb cc dd'); |
hexStringToArray(str, bits) |
以空格为分隔符的16进制字符串按照比特位(8位,16位或者32位)转换成字节数组 |
var data = util.cast.hexStringToArray('aabb ccdd', 16); |
hexStringToArray(str, separator) |
以为separator分隔符的16进制字符串转换成字节数组 |
var data = util.cast.hexStringToArray('aa,bb,cc,dd', ','); |
hexStringToArray(str, separator, bits) |
以为separator分隔符的16进制字符串按照比特位(8位,16位或者32位)转换成字节数组 |
var data = util.cast.hexStringToArray('aabb,ccdd', ',', 16); |
arrayToUtf8( data) |
数组转换成UTF-8格式 |
var data = [0x61, 0x62, 0x63];
var str = util.cast.arrayToUtf8(data); // 'abc'
|
arrayToUtf8( data, encoding) |
将数组从指定的 字符编码格式 转换成UTF-8编码 |
var data = [0xd6, 0xd0];
util.cast.arrayToUtf8(data, 'gb2312'); // '中'
|
stringToArray(str, encoding) |
字符串转换为字节数组,encoding为 字符编码格式 |
var data = util.cast.stringToArray('中文', 'gb2312'); //转换中文字符为gb2312编码的字节数组
var data = util.cast.stringToArray('中文', 'utf-16be'); //转换中文字符为utf-16be编码的字节数组
|
stringToUrlEncoding(str) |
字符串转换为URL Encoding格式 |
var str = 'http://wareexpress.com/query?dto={"date":"today"}';
var encoded = util.cast.stringToUrlEncoding(str); //转换为URL Encoding格式的字符串
|
整数转换
名称 |
功能说明 |
脚本例子 |
|---|---|---|
int16ToArray(value) |
数字按“大端模式(高字节在前)”转换为字节数组(长度为2) |
var data = util.cast.int16ToArray(0xaabb); //大端[0xaa,0xbb] |
int16ToArray(value, isBigEndian) |
数字按isBigEndian转换为字节数组(长度为2),isBigEndian为true表示大端 |
var data = util.cast.int16ToArray(0xaabb, false);//小端[0xbb,0xaa] |
int32ToArray(value) |
数字按“大端模式(高字节在前)”转换为字节数组(长度为4) |
var data = util.cast.int32ToArray(0xaabbccdd); //大端[0xaa,0xbb,0xcc,0xdd] |
int32ToArray(value, isBigEndian) |
数字按isBigEndian转换为字节数组(长度为4),isBigEndian为true表示大端 |
var data = util.cast.int16ToArray(value, false); //小端[0xdd,0xcc,0xbb,0xaa] |
arrayToInt(data) |
字节数组按“大端模式(高字节在前)”转换为有符号整数 |
var value = util.cast.arrayToInt([0xaa,0xbb]); //大端0xaabb |
arrayToInt(data, isBigEndian) |
字节数组按isBigEndian转换为有符号整数,isBigEndian为true表示大端 |
var value = util.cast.arrayToInt([0xaa,0xbb], false); //小端0xbbaa |
比特转换
名称 |
功能说明 |
脚本例子 |
|---|---|---|
bitArrayToByte(bits) |
位数组转换成字节(位由低到高) |
var value = util.cast.bitArrayToByte([1,0,1,0,1,1,1,1]);
util.console.log(value.toString(16)); // 打印字符串'f5'
|
byteToBitArray(value) |
字节转换成位数组(位由低到高) |
var bits = util.cast.byteToBitArray(0xF5);//返回数组[1,0,1,0,1,1,1,1] |
byteArrayToBitArray(bytes, nb_bits) |
字节数组转换成nb_bits长度的位数组 |
var a = util.cast.byteArrayToBitArray([0x70, 0x03], 10);//返回数组[1,0,1,0,1,1,1,1,1,1] |
浮点数转换
名称 |
功能说明 |
脚本例子 |
|---|---|---|
floatToArray(value) |
浮点数按“大端模式(高字节在前)”转换为字节数组(长度为4) |
var array = util.cast.floatToArray(3.14); //大端[0x40,0x48,0xf5,0xc3] |
floatToArray(value, isBigEndian) |
浮点数按isBigEndian转换为字节数组(长度为4),isBigEndian为true表示大端 |
var array = util.cast.floatToArray(3.14, false); //小端[0xc3,0xf5,0x48,0x40] |
arrayToFloat( data) |
数组(大端模式)转换成浮点数 |
var value = util.cast.arrayToFloat([0x40,0x48,0xf5,0xc3]); // 3.140000104904175 |
arrayToFloat( data, isBigEndian) |
数组转换成浮点数,isBigEndian为true表示大端 |
var value = util.cast.arrayToFloat([0xc3,0xf5,0x48,0x40], false); // 3.140000104904175 |
uint16ArrayToFloatAbcd(data) |
16位数组按ABCD字节顺序转换为浮点数 |
var value = util.cast.uint16ArrayToFloatAbcd([0xc3f5,0x4840]); //返回3.140000104904175 |
uint16ArrayToFloatDcba(data) |
16位数组按DCBA字节顺序转换为浮点数 |
var value = util.cast.uint16ArrayToFloatDcba([0x4048,0xf5c3]); //返回3.140000104904175 |
uint16ArrayToFloatBadc(data) |
16位数组按BADC字节顺序转换为浮点数 |
var value = util.cast.uint16ArrayToFloatBadc([0xf5c3,0x4048]); //返回3.140000104904175 |
uint16ArrayToFloatCdab(data) |
16位数组按CDAB字节顺序转换为浮点数 |
var value = util.cast.uint16ArrayToFloatCdab([0x4840,0xc3f5]); //返回3.140000104904175 |
floatAbcdToUint16Array(value) |
浮点数按ABCD字节顺序转换成16位数组[0xAABB, 0xCCDD] |
var data = util.cast.floatAbcdToUint16Array(3.14);//返回数组 [0xc3f5,0x4840] |
floatDcbaToUint16Array(value) |
浮点数按DCBA字节顺序转换成16位数组[0xDDCC, 0xBBAA] |
var data = util.cast.floatDcbaToUint16Array(3.14);//返回数组 [0xf5c3 ,0x4048] |
floatBadcToUint16Array(value) |
浮点数按BADC字节顺序转换成16位数组[0xBBAA, 0xDDCC] |
var data = util.cast.floatBadcToUint16Array(value);//返回数组 [0x4840,0xc3f5] |
floatCdabToUint16Array(value) |
浮点数按CDAB字节顺序转换成16位数组[0xCCDD, 0xAABB] |
var data = util.cast.floatCdabToUint16Array(value);//返回数组 [0x4048,0xf5c3] |