ajax如何传送数组、JSON.parse和JSON.stringify区别

【ajax如何传数组给php?有哪些办法?】
首先了解:
data有两种传参类型,一个对象(Object),而是字符串(String)。而对象类型必须是键值对的格式。
基于data只能传送两种类型的数据 (js是这样,jq会把数组转化成string),所以需要一定的方法把数组转化为json格式,如果手动的话是很不现实的,如果这个数组足够大,所以一定会有已经成型的方法实现了这个功能。
当时经过百度后,我认为靠谱的方法。

1.$.toJson(“要转换的数组”)
2.JSON.stringify("要转化的数组")。

现在我把被选中的多选框的value保存在一个数组checked_value[]中,想要把它传给php。(不是对象也不是字符串,是单纯的数组)
这里写图片描述

复制这个数组,接下来让它被转化成【键值对】的Json格式。
这里写图片描述

这里写图片描述

因为这个数组jsonstr本身是一个普通数组。
所以在写入ajax的data时,不能直接data:jsonstr,而是要写成data:{jr:jsonstr},
这里写图片描述

这样才是键值对。默认的键从0开始,值就是原来数组里那些value。
(当时不是太明白,各种测试修改得到的结果)

很啰嗦对不对?

之前写在空间里的时候估计也迷迷糊糊的,现在又重新查了资料又明白了一些。

说一下两个方法原本的用法。
1.JSON.parse(“要转换的数组”)
2.JSON.stringify(“要转化的数组”)。

首先,两个方法的用法是有差别的。
JSON.stringify是从一个对象中解析出字符串
JSON.parse是从一个字符串中解析出json(键值对)。
所以在使用的时候如果参数不对应,就不能正确转换。

具体用法:
JSON.parse:字符串->键值对
var str = ‘{“address”:”明水”,”phone”:”1237828”}’;
JSON.parse(str);

>
address: “明水”
phone: “1237828”

需要注意的是,单引号后花括号。双引号就麻烦了。貌似还要在花括号里面的双引号前面加\,否则算语法错误。


JSON.stringify:对象->字符串

var a = {a:1,b:2}

JSON.stringify(a)

>
“{“a”:1,”b”:2}”

贴一个很强大的解析。
http://www.jb51.net/article/29893.htm

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值