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);
}  

 

 

posted @ 2017-05-25 08:26  Marydon  阅读(1443)  评论(0编辑  收藏  举报