2015-05-13 114 views
0

JSON我通過Ajax發送查詢字符串格式化的文本像波紋管PHP腳本:轉換查詢字符串在PHP

title=hello&custLength=200&custWidth=300 

而且我想這個文本JSON對象通過這個結果在PHP轉換:

{ 
    "title" : "hello", 
    "custLength" : 200, 
    "custWidth" : 300 
} 

我怎樣才能做到這一點。有沒有人有辦法解決嗎?

編輯: 事實上,我必須以形成三個元件由標題custLengthcustWidth名稱和我試圖經由的serialize() jquery的方法來發送這些元素作爲一個參數到PHP腳本。

這個代碼是用於發送數據到PHP:

customizingOptions = $('#title,#custLength,#custWidth').serialize(); 

$.post('cardOperations',{action:'add','p_id':p_id,'quantity':quantity,'customizingOptions':customizingOptions},function(data){ 

if (data.success){ 

    goBackBtn('show'); 

    updateTopCard('new');   
}     

},'json'); 

在PHP腳本我用json_encode()的轉換隻customizingOptions參數爲JSON。
但結果不是我所期望的和結果是一個簡單的文字是這樣的:

"title=hello&custLength=200&custWidth=300" 
+0

哪一部分是它是你堅持?讀取查詢字符串或寫入JSON? – JJJ

+0

echo json_encode($ _ GET);試試這個 – Codelord

+0

我已經添加了更多的細節問題。 –

回答

6
$check = "title=hello&custLength=200&custWidth=300"; 
$keywords = preg_split("/[\s,=,&]+/", $check); 
$arr=array(); 
for($i=0;$i<sizeof($keywords);$i++) 
{ 
$arr[$keywords[$i]] = $keywords[++$i]; 
} 
$obj =(object)$arr; 
echo json_encode($obj); 

嘗試這個代碼,您得到您想要的結果

+1

是的。它完美地工作。 –

1

最簡單的如何從$_GET字符串achiev JSON對象的方法是非常簡單的:

json_encode($_GET) 

這將產生以下JSON輸出:

{"title":"hello","custLength":"200","custWidth":"300"} 

或者你可以使用一些解析函數作爲第一(例如 - 保存所有variab將其轉換爲數組),然後您可以將解析的輸出發送到json_encode()函數。

不指定詳細的需求,也有許多解決方案。

+0

感謝您的回覆。但我想只編碼Get Request的一個參數,它包含一個queryString格式的文本。我添加了更多的細節來提問。我再次感謝你看到 –