ホームページ >バックエンド開発 >PHPチュートリアル >PHP_PHP チュートリアルで配列を JSON 文字列に変換するプログラム コード

PHP_PHP チュートリアルで配列を JSON 文字列に変換するプログラム コード

WBOY
WBOYオリジナル
2016-07-20 11:03:20934ブラウズ

js 形式のデータへのデータ変換は、特に ajax でデータを json に変換してから再度変換するためによく使用される方法です。以下の例を見てみましょう。 ​

これを試してから、json_encode を上記の関数に置き換えて、正しく動作するかどうかを確認できます
コードは次のとおりです コードをコピー

関数 array_to_json($array) {
if (! is_array ( $array )) {
false を返します;
}

$associative = count ( array_diff ( array_keys ( $array ), array_keys ( array_keys ( $array ) ) ) );
if ($associative) {

$construct = array();
foreach ( $array as $key => $value ) {

// まず、各キーと値のペアをステージング配列にコピーします
// 各キーと値を適切にフォーマットします。


// キーをフォーマットします:
if (is_numeric ( $key )) {
$key = "key_$key";
}
$key = """ .addlashes ( $key ) .""";

// 値をフォーマットします:
if (is_array ( $value )) {
$value = array_to_json ( $value );
} else if (! is_numeric ( $value ) || is_string ( $value )) {
$value = """ .addslashes ( $value ) . """;
}

// ステージング配列に追加:
$construct [] = "$key: $value";
}

// 次に、ステージング配列を JSON 形式に折りたたみます:
$result = "{" .implode ( ",", $construct ) .
} else { // 配列がベクトル (結合ではない) の場合:

$construct = array();
foreach ( $array as $value ) {

// 値をフォーマットします:
if (is_array ( $value )) {
$value = array_to_json ( $value );
} else if (! is_numeric ( $value ) || is_string ( $value )) {
$value = """ .addlashes ( $value ) . """;
}

// ステージング配列に追加:
$construct [] = $value;
}

// 次に、ステージング配列を JSON 形式に折りたたみます:
$result = "[" . implode ( ", ", $construct ) . }

$result を返します;
}

コードは次のとおりです

phpのjson_encodeについて

json_encode() は、さまざまなタイプの PHP 変数を対応する JSON 文字列に変換します。

$オプション = 0])

PHP 5.3.0

JSON_HEX_QUOT: すべての二重引用符 (") を u0022 に変換します。 // コード例:


コードをコピー
if($_GET['enews']=='ok'){

echo json_encode(array('a'=>'Wang Jin'));exit; }
?>


コードは次のとおりです$data = '"'; echo json_encode($data); // """ // "u0022"■JSON_HEX_TAG: すべての大なり記号 (>) を u003E に変換し、
コードをコピー
echo json_encode($data, JSON_HEX_QUOT);

を置き換えます

すべての小なり記号 (<) は u003C に変換されます。

JSON_HEX_AMP: すべてのアンパサンド (&) を u0026 に変換します。

JSON_HEX_APOS: すべての一重引用符 (’) を u0027 に変換します。
JSON_FORCE_OBJECT: 値が非連想配列の場合、出力結果を強制的に JSON オブジェクトにします。受信側がデータをオブジェクトにし、値を空の配列にする必要がある場合

使用します。

// コード例:

コードは次のとおりです$data = 配列(); echo json_encode($data); // []PHP 5.3.3
コードをコピー
; echo json_encode($data, JSON_FORCE_OBJECT); // {}

JSON_NUMERIC_CHECK: 数値文字列を数値としてエンコードします。

PHP 5.4.0

JSON_BIGINT_AS_STRING: 大きな整数を元の文字列値としてエンコードします。PHP 以降で使用可能です

。 5.4.0.


JSON_PRETTY_PRINT: 返されたデータの空白を使用してフォーマットします。PHP 5.4.0 以降で利用可能です。

JSON_UNESCAPED_SLASHES: / をエスケープしないでください。PHP 5.4.0 以降で使用可能です。

JSON_UNESCAPED_UNICODE: マルチバイト Unicode 文字をリテラルにエンコードします (デフォルトは uXXXX としてエスケープします)。
PHP 5.4.0以降で利用可能


http://www.bkjia.com/PHPjc/445290.html

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/445290.html技術記事 js 形式のデータへのデータ変換は、特に ajax でデータを json に変換してから再度変換するためによく使用される方法です。以下の例を見てみましょう。 コードは次のようなものです...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。