2011-06-27 14 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番目の答えの必要性を見ていないので、他のものを強制するコメントを残しました。 –

答えて

6

json_encodeを使用してPHPデータ構造を構築します。文字列をマッシュしてJSONを構築しようとしないでください。

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

@サルマンA - 正しくありません。文字列を出力します。 JSONの最上位データ型は配列またはオブジェクトでなければならないので、何も出力するのではなく例外をスローする必要があります。それはポイントの横にありますが、質問は配列に関するものです。 – Quentin

3

あなたはjson_encode使用することができます(EDITを - エンコードされたときに出力が要求されたものとなるように、私は、配列を変更)

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

echo (json_encode($json)); 

は用hereを探します参照。

EDIT - json_encodeを使用するには、php vesion> 5.20が必要です。代替が必要な場合は、zend_frameworkコンポーネントを使用できます。Zend_JSON

+1

ターゲットはオブジェクトではなく配列で、 '=>'は '、'でなければなりません。 – Quentin

+1

@Quentin '=>'は、オブジェクトではなく配列の言語構造です。これにより、左側に配列キーを、右側に配列値を指定することができます。次に、次のようにすることができます: '$ value = $ myarray ['hello'];'。しかし、OPは 'array( 'hello'、 'hello')'と思っているようです。 –

+0

Itは連想配列をkey - > valueとして持っているので、helloの値を持つhelloという名前のプロパティを持つjsonオブジェクトを持ちますが、質問はあなたが書いたものを求めました! :) –

3
$var = "hel\"lo"; 
$var2 = "hel\nlo"; 
echo json_encode(array($var, $var2)); 
関連する問題