繁体   English   中英

将json对象转换为序列化的字符串以进行服务器端处理?

[英]convert json object to serialized string for server side processing?

我正在尝试将返回的json对象转换为可通过一些PHP服务器端代码进一步处理的序列化字符串:

返回的对象如下所示:

Object {id: "123456787654321", email: "some-email@gmail.com", first_name:   "First", gender: "male", last_name: "Last"}

我可以使用以下方法将对象转换为字符串:

var paramString = JSON.stringify(response);
console.log(paramString);

// doesn't work
//var params = paramString.serialize();

现在如何将字符串转换为可通过以下客户端调用传递到服务器的序列化字符串

我期望这样的事情:

id=123456787654321&email=some-email@gmail.com&first_name...

我的服务器端代码:

$.post("/functions/test_functions.php", {params: params}, function(data) {
    ...                             
}, "json");

我像这样在服务器端处理params数组:

$vars = $_SERVER['REQUEST_METHOD'] === "GET" ? $_GET : $_POST; 

$params = array();
isset($vars['params']) ? parse_str($vars['params'], $params) : null;

您可以将JSON字符串传递到服务器,并使用json_decode()对其进行解码。 有关详细信息,请参见http://php.net/manual/en/function.json-decode.php

除非有特定的原因可用于串化,否则实际上不需要。 jQuery .post将为您处理序列化,例如:

var response = {id: "123456787654321", email: "some-email@gmail.com", first_name:   "First", gender: "male", last_name: "Last"};
$.post("/functions/test_functions.php", response, function(data) {
    ...                             
}, "json");

将发出这样的POST请求:

/functions/test_functions.php
内容类型: application / x-www-form-urlencoded; 字符集= UTF-8
表单数据: id=12345654321&email=some-email@gmail.com&first_name ....

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM