ProjectJS的Map对象前后交互问题

Posted Silent1376

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ProjectJS的Map对象前后交互问题相关的知识,希望对你有一定的参考价值。

这是我在项目中写的一个Map对象:

let map = new Map();

for (let i = 0; i < type_checked_value.length; i++) {
    let type_id = type_checked_value[i]
    map.set(‘type_‘ + type_id + ‘_quantity‘, $("#type_" + type_id + "_quantity").val());
    map.set(‘type_‘ + type_id + ‘_score‘, $("#type_" + type_id + "_score").val());
}

我天真的觉得JS自带的JSON对象就可以像Java的那些JSON转换组件一样调用即可实现转换【大雾】

let jsonMap = JSON.stringify(map);

用这个方法给后端之后就是一个空括号了,在java这里接受就是这个结果:

{}

然后找到了这个办法,可以实现JS的Map对象转换JSON

// JS map对象转换Json方法 https://blog.csdn.net/Jac__Xu/java/article/details/80969219
        function mapToJson(m) {
            var str = ‘{‘;
            var i = 1;
            m.forEach(function (item, key, mapObj) {
                if(mapObj.size == i){
                    str += ‘"‘+ key+‘":"‘+ item + ‘"‘;
                }else{
                    str += ‘"‘+ key+‘":"‘+ item + ‘",‘;
                }
                i++;
            });
            str +=‘}‘;
            //console.log(str);
            return str;
        }

传到了后台之后就是这个效果了:

{"type_2_quantity":"2","type_3_score":"5","type_1_score":"4","type_1_quantity":"2","type_3_quantity":"3","type_2_score":"5"}

在Java这里就使用了FastJson来处理转换的:

    @Test
    public void parsejavascriptMapObject(){
        String json = "{"type_2_quantity":"2","type_3_score":"5","type_1_score":"4","type_1_quantity":"2","type_3_quantity":"3","type_2_score":"5"}";
        // JSON.parseObject(json);
        Map map = JSON.parseObject(json);

        System.out.println(map);

        Object type_2_quantity = map.get("type_2_quantity");
        System.out.println(type_2_quantity);
    }

测试的结果是能取到值的

{"type_2_quantity":"2","type_3_score":"5","type_1_score":"4","type_1_quantity":"2","type_3_quantity":"3","type_2_score":"5"}
2

Process finished with exit code 0

大概就这样了,没有别的补充

 

以上是关于ProjectJS的Map对象前后交互问题的主要内容,如果未能解决你的问题,请参考以下文章

前后台分离h5和后台数据接口怎么交互数据的

Vue 前后端交互

Vue 前后端交互

ajax前后端交互

前后端交互

ajax的底层前后台交互