javascript 自定义Map

 

迁移时间:2017年5月25日08:24:19

Author:Marydon

三、自定义Map数据格式

需特别注意的是:

  js中没有像java中的Map数据格式,js自带的map()方法用于:返回一个由原数组中的每个元素调用一个指定方法后的返回值组成的新数组。

map()使用指南:http://www.cnblogs.com/rocky-fang/p/5756733.html

  (一)数据格式介绍

    java中Map数据格式组成:{key=value, key=value,...} 

    格式:键与值之间用"="拼接,键值对之间用","拼接。

  (二)操作Map

    3.2.1 Map赋值  

    实现方式:字符串拼接  

    拼接方式:同上

    举例:

var mapString = "";
var value1 = "张三";
var value2 = "123";
mapString += "userName=" + value1 + ",";
mapString += "password=" + value2;
mapString = "{" + mapString + "}";//最后拼接上"{}"

  (三)格式转换

    3.1 mapString转换成JSON对象

/**
 * 将map形式的字符串转成JSON对象
 * @param {string} mapStr
 *   java-Map格式字符串
 */
function mapstringToJSON (mapStr) {
    // 1.去除字符串中所有的"
    mapStr = mapStr.replace(/"/g, "");
    // 2.去除掉"{}"
    mapStr = mapStr.substring(1, mapStr.length - 1);
    // 3.将map字符串用逗号拆分成数组
    var strs = mapStr.split(",");
    var jsonStr = "";//JSON字符串
    var keyValue = new Array(2);//声明一个长度为2的数组
    var key = "";//JSON-键
    var value = "";//JSON-值
    // 4.迭代map键值对
    $(strs).each(function(index, str) {
        keyValue = str.split("=");//按等号拆分成数组
        key = '"' + keyValue[0].trim() + '"';
        value = '"' + keyValue[1].trim() + '"';
        jsonStr += key + ":" + value + ",";//标准的JSON拼接格式
    });
    // 5.去除最后一个逗号并拼接"{}"
    jsonStr = "{" + jsonStr.substring(0, jsonStr.length - 1) + "}";
    // 6.json字符串转成JSON对象
    var json = eval('(' + jsonStr + ')');
    return json;
}

    举例:

/**
 * 遍历JSON对象
 */
var key = "";//
var value = "";//
var keyValue = "";//键值对
for (var item in jsonObj) {
    key = item;
    value = jsonObj[item];//这里只能使用"[]"取值,使用"."(jsonObj.item)取不到值
    keyValue = item + ":" + value;
    console.log(keyValue);
}  

 

 

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值