关于JSON.stringify 与 JSON.parse使用小记(笔记向)

8 篇文章 0 订阅
2 篇文章 0 订阅

前段时间做了一个任务,为了在商城搜索页面给商品的显示顺序做排序,要给商品加上相对应的权值,跳到权重页面,首先需要查出来所有的已经绑定权重值的商品列表,显示出权重值,有效日期以及是否有效等状态,(楼主用的是datatable,其实可以用handlebar来处理,会使页面数据显示更美观,样式更容易更改,但是由于时间紧迫,就没改)跑题了,页面上有一个按钮,点击时可以查找出所有的没有绑定权值的商品列表,每个商品前面有checkbox来提供选择,选中后点确定就会把选中的商品添加到权重列表之中,权重值和有效期为空,需手动添加,添加完毕之后,需要把所有的商品数据传到后台去,然后做更新或是保存处理。由于楼主经验不足,就在传输数据这块儿卡住很长时间。。。最开始想到的是在后台用HttpRequest request来获取页面上的每一个单品值,但是这样需要给每一个单品设定标识来获取对象值,而且麻烦繁琐,pass,然后博主想到可否将前台的列表封装到一个数组里面,然后将数组传到后台,然后将数组循环解析然后插到数据库里面,但是保存时我用的是ajax来保存的,所以需要将封装的数组转化为字符串,然后将字符串传到后台,再将字符串解析为数组对象,在解析数组。下面是代码:

                              1.首先将页面上的所有数据封装到数组里面

var searchWeightFormList=[];
        $('#datatable tr').each(function(){
var value =$(this).find('[name="weightValue"]').val();
var weightTypeId =$(this).find('[name="weightValue"]').attr('weightTypeIds');
var beginDatetime =$(this).find('[name="beginDatetime"]').val();
var endDatetime =$(this).find('[name="endDatetime"]').val();
if(typeof(value) !="undefined"&&typeof(weightTypeId) !="undefined"&&typeof(beginDatetime) !="undefined"&&typeof(endDatetime) !="undefined"){
   searchWeightForm={
    weightValue:value,
    weightTypeId:weightTypeId,
    beginDatetime:beginDatetime,
    endDatetime:endDatetime
    };
   searchWeightFormList.push(searchWeightForm);
   }
});


                              2.ajax传输数据

                              callService('/XXX/XXXXXXX.ajax',{searchFormJson:JSON.stringify(searchWeightFormList)}, {
    callSuccess : function(data) {
    if (data != null) {
    $.dm.jumpTo("/XXX/XXXXXXX.jhtml");
    }else{
    jsAlert(“保存失败”);
    }
    }
    })

                            注:此处使用到了JSON.stringify()的方法,将一个form的数组转化为字符串


                            3.后台获取数据并且解析数组

                            /**
                                 * 保存权重列表
                                 * 
                                 * @return
                                 */
                                @ResponseBody
                                @RequestMapping(value = "/XXXXXX.ajax", method = { RequestMethod.POST })
                                public Boolean toSaveSearchWeightAdSetList(String searchFormJson) {


                                    SearchWeightForm[] searchWeightFormList = JSON.parseObject(searchFormJson, SearchWeightForm[].class);

                                    List<SearchWeightVo> searchWeightVoList = new ArrayList<SearchWeightVo>();
                                    for (SearchWeightForm searchWeightForm : searchWeightFormList) {
                                        SearchWeightVo searchWeightVo = (SearchWeightVo) BeanUtil.copy(searchWeightForm, SearchWeightVo.class);
                                        searchWeightVo.setModifyUser(SystemConstant.SYSTEM_USER);
                                        searchWeightVoList.add(searchWeightVo);
                                    }
                                    Long result = adminSearchWeightModel.toSaveSearchWeightAdSetList(searchWeightVoList);
                                    if (result > 0) {
                                        return true;
                                    }
                                    return false;
                                }

                                注:此处使用了JSON.parseObject()的方法,将一个字符串转换为一个对象。

这个方法也许对于大佬们算是小菜一碟,但是博主完成之后还是稍感欣慰的。所以要更加努力,每学会一点点就在博客上做点记录,积少成多,加油。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
json.stringify()和json.parse()是JavaScript中用于处理JSON数据的方法。 json.stringify()方法将JavaScript对象转换为JSON字符串。这个方法可以将一个JavaScript对象序列化为JSON格式的字符串,以便于在网络传输或存储时使用。它会将JavaScript对象中的键值对转换为JSON格式,并添加双引号。 json.parse()方法将JSON字符串解析为JavaScript对象。这个方法可以将一个JSON格式的字符串解析为JavaScript对象,以便于在代码中操作和访问。它会将JSON字符串中的键值对解析为JavaScript对象中的属性和值。 简而言之,json.stringify()是将JavaScript对象转换为JSON字符串,而json.parse()是将JSON字符串解析为JavaScript对象。这两个方法在处理JSON数据时起到了互补的作用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Json.stringify()和Json.parse() - 用法及区别](https://blog.csdn.net/HZM_CSDN/article/details/125534487)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [关于JSON.parse(),JSON.stringify(),jQuery.parseJSON()的用法](https://download.csdn.net/download/weixin_38669091/14803654)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [JSON中key动态设置及JSON.parseJSON.stringify()的区别](https://download.csdn.net/download/weixin_38688855/14807385)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值