2014-10-29 58 views
0

進出口試圖在PHP以下字符串編碼,以便它可以作爲JSON對象被髮送:編碼HTML元素JSON在PHP

success:{'id':'success=-message', 'class':'success-message', 'inner-html':'Congratulations! You have been succesfully logged in'}, 

logout: {'type'='button', 'value'='logout', 'class'='logout-button'}, 

sessionID: {'type'='hidden', 'name'='sessionID', 'value'=1} 

如何可以格式化,以便它可以適當地使用被編碼json_encode()?

+1

json_encode將採取字符串沒有問題。但它看起來更像是你有一個僞js對象定義,並且想將它轉換爲等效的PHP結構,以便將它轉換回json? – 2014-10-29 20:07:09

+0

是的,我想要一個成功的JSON對象,註銷和會話ID作爲索引,其中每個都是一個數組,我可以訪問其中的各個項目 – Micah 2014-10-29 20:11:54

+0

這樣的JS代碼,你已經得到了什麼地方?如果不在PHP中實現JavaScript解析器,您將無法使用PHP將其轉換爲json。如果它已經在JS中,那麼你已經有'JSON.stringify()'來爲你做轉換。 – 2014-10-29 20:13:24

回答

1
{'success':{'id':'success=-message', 'class':'success-message', 'inner-html':'Congratulations! You have been succesfully logged in'}, 

'logout': {'type'='button', 'value'='logout', 'class'='logout-button'}, 

'sessionID': {'type'='hidden', 'name'='sessionID', 'value'=1}} 

你只需要在大括號(開始&端),使之成爲有效的JSON陣列。

而鑰匙需要引用。

0

你說這是一個字符串?然後它看起來幾乎完全是json編碼。只是包住它在方括號:

echo "var myAssociativeArray = [ 
    success:{'id':'success=-message', 'class':'success-message', 'inner-html':'Congratulations! You have been succesfully logged in'}, 
    logout: {'type'='button', 'value'='logout', 'class'='logout-button'}, 
    sessionID: {'type'='hidden', 'name'='sessionID', 'value'=1} 
];"; 

,但好像你正在創建的PHP端這個字符串,這意味着你正在做它json_encode的工作(正確嗎?)。相反,你應該有這樣的東西:

//This is a temp array just to show you how it works: 
$myArr = array(
    "success" => (object) array(
     "id" => "success=-message", 
     "class" => "success-message", 
     "inner-html" => "Congratulations! You have been succesfully logged in" 
    ) 
); 

//Now you output the json version 
echo json_encode($myArr);