簡體   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