2011-06-27 58 views
1

我有一些相當長的字符串,包含任何我想要從PHP轉換爲JSON的字符串。有沒有簡單的方法來做到這一點?例如,我想這個JSON輸出中的工作:正確地將字符串轉換爲PHP中的JSON數據

<?php 
    $var = "hel\"lo"; 
    $var2 = "hel\nlo"; 
    echo "[\"".$var."\", \"".$var2."\"]"; // should give me the data: hel"lo and hel<new line>lo 
?> 
+0

如果答案沒有說清楚就夠了,使用['json_encode()'](http://php.net /manual/en/function.json-encode.php) –

+1

@Wesley爲什麼你覺得需要重新發布所有5個正確答案作爲評論? –

+0

@Matthieu:我沒有看到第六個答案的必要性,所以我只是留下了一條評論來強制其他人。 –

回答

6

構建PHP數據結構,然後通過json_encode運行它。不要嘗試通過將字符串混合在一起來構建JSON。

$foo = array($var, $var2); 
echo json_encode($foo); 
+0

@Salman A - 不正確。它輸出一個字符串。由於JSON中的頂級數據類型必須是數組或對象,因此應該拋出異常而不是輸出任何內容。不過,這個問題與數組有關。 – Quentin

3

你可以使用json_encode(編輯 - 我改變了數組,這樣編碼時被要求輸出什麼)

var $json = array('hello','hello'); 

echo (json_encode($json)); 

的外觀here參考。

編輯 - 要使用json_encode,您必須擁有php vesion> 5.20。如果您需要替代方案,則可以使用zend_framework組件Zend_JSON

+1

目標是一個數組,而不是一個對象,''=>'應該是','。 – Quentin

+1

@Quentin'=>'是數組的語言結構,而不是對象。這可以在左側指定數組鍵,在右側指定數組值。你可以這樣做:'$ value = $ myarray ['hello'];'。然而,無論如何,OP似乎都希望'array('hello','hello')。 –

+0

它是一個關聯數組,作爲鍵 - >值,所以你有一個名爲hello的屬性名爲hello的json對象,值爲hello,但是,這個問題問的是你寫的東西! :) –

3
$var = "hel\"lo"; 
$var2 = "hel\nlo"; 
echo json_encode(array($var, $var2)); 
相關問題