-3

json_encode メソッドが引数として配列を取得することにいつも気付きました。私の質問は、メソッドの引数として配列の代わりに文字列を使用できるかということです

json_encode($array);

更新しました

こんにちは、次のコードを確認してください。文字列をジェイソンに変換します

 $jason = '<h3 style="font-size:15px;">';
    foreach($employee as $key=> $value){
        $jason .= '<table><tbody>';
        $jason .= '<tr><td style="width:400px;padding:5px;padding:10px;"></td><td style="width:300px;padding:5px;"><img style="width:132px; height:175px;" src="'.$image_folder.$value->prfil_img .'" /></td></tr>';
    //$retval .= '<a href="'. $store_url . 'product_info.php?products_id=' . $product_id . '"><img src="' . $image_folder . $product_image . '" /></a><br />';

         $jason .= '<tr><td style="width:30%;font-size:14px;paddig:10px;">'.'Name:'.'</td>'.'<td style="font-size:14px;paddig:5px;">'.$value->first_name.'&nbsp;&nbsp;'.$value->last_name.'</td></tr>';
         $jason .= '<tr><td style="width:30%;font-size:14px;paddig:10px;">'.'Email:'.'</td>'.'<td style="font-size:14px;paddig:5px;">'.$value->email;'</td></tr>';
         $jason .= '<tr><td style="width:30%;font-size:14px;paddig:10px;">'.'Tel Ext:'.'</td>'.'<td style="font-size:14px;paddig:5px;">'.$value->extension;'</td></tr>';
         $jason .= '<tr><td style="width:30%;font-size:14px;paddig:10px;">'.'Account:'.'</td>'.'<td style="font-size:14px;paddig:5px;">'.$value->account;'</td></tr>';
         $jason .= '</table></tbody>';
        // echo '</br>';echo '</br>';

   }
        $jason .= '</h3>';

   echo json_encode($jason);

しかし、その後、次の出力が得られます

ここに画像の説明を入力

しかし、ジェイソンエンコードを使用しないと、結果が明確になります。(html要素の構文を壊すことなく)。誰でもこれについて何か考えがありますか?私はどこで間違いを犯しましたか?

wordpress で ajax を使用しているため、jason でエンコードされたデータを使用する必要があります。

以下にジェイソンエンコードを適用すると、次の出力が得られることに注意してください

$jason = '<tr><td style="width:90%;font-size:14px;">';
$jason .= 'val 2';
echo json_encode($jason) ;

出力は「val 2」なので、jason形式のデータだと思います。

4

5 に答える 5

3

はい、できます

フォームhttp://php.net/manual/en/function.json-encode.php

「エンコードされている値。リソース以外の任意のタイプにすることができます。」

于 2013-07-15T16:43:09.907 に答える
3

PHPマニュアルに注意すると、次のように書かれjson_encode()ています:

ノート:

リファレンス JSON エンコーダーと同様に、json_encode() は、入力値として文字列、整数、浮動小数点数、またはブール値が与えられた場合、単純な値 (つまり、オブジェクトでも配列でもない) である JSON を生成します。ほとんどのデコーダーはこれらの値を有効な JSON として受け入れますが、この点に関する仕様があいまいであるため、一部のデコーダーは受け入れない場合があります。

したがって、文字列値を渡すとエンコードされますが、その値が普遍的にデコードできるとは思わないでください。使い方によっては、配列ラッパーに配置したほうがよい場合があります。

また、この関数は配列を受け取るだけでなく、オブジェクト (または前述の他の単純な値) も適切にエンコードします。

于 2013-07-15T16:44:27.800 に答える
3

はい、できます。ドキュメントは、mixed value入力として使用できることを示しています。

于 2013-07-15T16:43:28.343 に答える
2

まあそれは言っていますmixed、私は文字列もうまくいくと確信しています。

そして見て!します!

于 2013-07-15T16:43:20.900 に答える
1

はい

  $a = '"Hello World"';

  echo json_encode ($a);

  // outputs "\"Hello World\""   with the quotes

これにより、文字列内の文字が適切にエスケープされることに注意してください。

  <script>
      var a = <?php echo json_encode($a); ?>;
  </script>

自分でエスケープを実行することを心配する必要はありません。

于 2013-07-15T16:46:07.747 に答える