后端兄弟想要对 JSON数据和Java的Map集合 进行互转,网上没找到在线转换的方法,抽空帮他写一个,提高他的开发效率
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>转换数据</title>
<link type="text/css" rel="styleSheet" href="./bootstrap/css/bootstrap.min.css" />
<script src="./jquery.min.js"></script>
<script src="./bootstrap/js/bootstrap.min.js"></script>
</head>
<body>
<div class="row" style="margin-top: 20px;">
<div class="col-md-1 col-md-offset-1">
<button type="button" class="btn btn-success" id="mapBtn">Map->JSON</button>
</div>
<div class="col-md-1 col-md-offset-4">
<button type="button" class="btn btn-info" id="jsonBtn">JSON->Map</button>
</div>
</div>
<div class="row">
<div class="col-md-4 col-md-offset-1">
<h2>Map数据</h2>
<textarea class="form-control" rows="36" id="mapData"></textarea>
</div>
<div class="col-md-4 col-md-offset-1">
<h2>JSON数据</h2>
<textarea class="form-control" rows="36" id="jsonData"></textarea>
</div>
</div>
</body>
<script>
$(function(){
$("#mapBtn").click(function(){
$('#jsonData').val(JSON.stringify(map2Json($('#mapData').val()), null, "\t"));
});
$("#jsonBtn").click(function(){
let map = _jsonToMap($('#jsonData').val());
let tempMap = '{\n';
map.forEach(function (value, key, map) {
tempMap += '\t' + key + "=" + value + ',\n';
})
tempMap = tempMap.substring(0,tempMap.length - 2);
tempMap += '\n}'
console.log(tempMap)
$('#mapData').val(tempMap)
});
});
//Java Map对象的String字符串转换为Json
function map2Json(mapStr){
var subStr = (mapStr.substring(1,mapStr.length-1)).trim();
var arr = subStr.split(",");
var newJson = {};
for(var i in arr){
var tmpObj = arr[i].split("=");
newJson[$.trim(tmpObj[0])] = tmpObj[1];
}
return newJson;
}
//Json转换为Java Map对象的String字符串
function json2Map(jsonStr){
var subStr = jsonStr.substring(1,jsonStr.length-1);
var arr = subStr.split(",");
var newMap = {};
for(var i in arr){
var tmpObj = arr[i].split("=");
newMap[$.trim(tmpObj[0])] = tmpObj[1];
}
return newJson;
}
function _objToStrMap(obj){
let strMap = new Map();
for (let k of Object.keys(obj)) {
strMap.set(k,obj[k]);
}
return strMap;
}
/**
*json转换为map
*/
function _jsonToMap(jsonStr){
return this._objToStrMap(JSON.parse(jsonStr));
}
</script>
</html>