Plist文字列値と特殊文字のJSON変換
特殊文字、XMLエンティティ、複数行コンテンツを含むplist文字列値がどのようにJSON文字列に変換されるかを学びます。
Advanced
詳細な説明
PlistとJSON間の文字列処理
文字列はplistファイルで最も一般的な型ですが、XMLとJSONで異なるエスケープルールがあります。これらの違いを理解することは正確な変換に重要です。
PlistのXMLエンティティ
<dict>
<key>CompanyName</key>
<string>Smith & Jones</string>
<key>TagLine</key>
<string>We say "hello" & <wave></string>
<key>Description</key>
<string>Line one
Line two
Line three</string>
<key>EmptyValue</key>
<string></string>
</dict>
JSON出力
{
"CompanyName": "Smith & Jones",
"TagLine": "We say \"hello\" & <wave>",
"Description": "Line one\nLine two\nLine three",
"EmptyValue": ""
}
XMLエンティティのデコード
plist XMLを解析する際、ブラウザのDOMParserはXMLエンティティを自動的にデコードします:&は&に、<は<に、"は"になります。JSON出力にはJSONに適したエスケープ(ダブルクォートは\"など)でデコードされた文字が含まれます。
複数行文字列
Plist XMLは<string>要素内の改行を保持します。JSONでは文字列値内の\nエスケープシーケンスになります。コンバーターはJSON.stringify()を通じてこれを自動的に処理します。
逆変換:JSONからPlist
JSON文字列をplistに変換する際、特殊なXML文字がエスケープされます:&は&に、<は<に、>は>に、"は"になります。これにより生成されるplist XMLが常に有効であることが保証されます。
空文字列
空の<string></string>要素は空のJSON文字列""になります。これらはnull値(plistには存在しない)とは異なります。
ユースケース
特殊文字を含むユーザー向けテキスト、スペースを含むファイルパス、または複数行の説明フィールドを含むplistファイルを扱う開発者にとって重要です。