我爱编程

jQuery.post()发送JSON数组的方法

2018-04-11  本文已影响276人  microkof

简单情况下,通常我们用$.post()发送的是一串由键值对序列化的字符串,或者发送的是一个JS对象(或一个JSON),而今天,我遇到一个情况是需要发送JSON数组,测试了一下,方法如下:

JS端

// 组装一个JSON数组
var postModel = [];
postModel.push({a:1,b:2});
postModel.push({c:3,d:4});

// 发送的是一个对象,对象的值先转换为字符串
$.post('url...', {works: JSON.stringify(postModel)}, function (data) {
        alert('ok');
});

按照上面方法,PHP端会收到一个works,值是一长串字符串。

PHP端(用ThinkPHP框架前提下)

$works = json_decode(htmlspecialchars_decode($this->_post('works')), true);

要点1:用htmlspecialchars_decode()。因为works字符串内的双引号都是实体,也就是",而json_decode()并不会自动反转义,所以用htmlspecialchars_decode()反转义。

要点2:json_decode()的参数true不要忘记。

上一篇下一篇

猜你喜欢

热点阅读