3

PHP が既に JSON_PRETTY_PRINT を提供して JSON データをフォーマットしていることは知っています。別の形式が必要な場合はどうすればよいですか?

$message = array(
    "Open all day" => "Sundays,Saturdays,12-12-2013, 14-10-2013",

    "Availabilty" => array(
        "12/12/2013" => array(
            30,
            60,
            30,
            0
        ),
        "13/12/2013" => array(
            30,
            0,
            30,
            60,
        ),
    ),

);

$json = json_encode($message,JSON_PRETTY_PRINT);

結果、

{
    "Open all day": "Sundays,Saturdays,12-12-2013, 14-10-2013",
    "Availabilty": {
        "12\/12\/2013": [
            30,
            60,
            30,
            0
        ],
        "13\/12\/2013": [
            30,
            0,
            30,
            60
        ]
    }
}

でも私は〜がいい、

{"Open all day":"
Sundays, 
Saturdays,
Fridays,
12/12/2013, 
14/10/2013, 
04/12/2013
",

"Availability":"
"12/12/2013":[30,60,30,0],
"13/12/2013":[30,60,30,0]
"}

それは可能ですか?おそらく正規表現?また、これらのバックスラッシュは必要ありません。削除できますか?

4

2 に答える 2

12

単独で使用してそのフォーマットを取得することはできませんjson_encode

JSON_UNESCAPED_SLASHESただし、スラッシュがエスケープされるのを防ぐために、次の定数を使用できます。

$json = json_encode($message,JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);

こちらのドキュメントを参照してください。

デモ!

于 2013-09-27T18:08:46.490 に答える
4

php には、json が有効であることを確認するための定数がいくつかあります。そのため、これらの定数を常に使用して、情報の整合性を確保することをお勧めします。

http://www.php.net/manual/en/json.constants.php

エスケープバックスラッシュなしで使用したい場合は、json が適切にフォーマットされていれば可能ですが、ある時点で、または一部のシステムが json を拒否するという保証はありません...したがって、php が提供する定数を常に使用して確認してください情報の完全性。

于 2013-09-27T18:08:27.177 に答える