Plist文字列値と特殊文字のJSON変換

特殊文字、XMLエンティティ、複数行コンテンツを含むplist文字列値がどのようにJSON文字列に変換されるかを学びます。

Advanced

詳細な説明

PlistとJSON間の文字列処理

文字列はplistファイルで最も一般的な型ですが、XMLとJSONで異なるエスケープルールがあります。これらの違いを理解することは正確な変換に重要です。

PlistのXMLエンティティ

<dict>
  <key>CompanyName</key>
  <string>Smith &amp; Jones</string>
  <key>TagLine</key>
  <string>We say &quot;hello&quot; &amp; &lt;wave&gt;</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エンティティを自動的にデコードします:&amp;&に、&lt;<に、&quot;"になります。JSON出力にはJSONに適したエスケープ(ダブルクォートは\"など)でデコードされた文字が含まれます。

複数行文字列

Plist XMLは<string>要素内の改行を保持します。JSONでは文字列値内の\nエスケープシーケンスになります。コンバーターはJSON.stringify()を通じてこれを自動的に処理します。

逆変換:JSONからPlist

JSON文字列をplistに変換する際、特殊なXML文字がエスケープされます:&&amp;に、<&lt;に、>&gt;に、"&quot;になります。これにより生成されるplist XMLが常に有効であることが保証されます。

空文字列

空の<string></string>要素は空のJSON文字列""になります。これらはnull値(plistには存在しない)とは異なります。

ユースケース

特殊文字を含むユーザー向けテキスト、スペースを含むファイルパス、または複数行の説明フィールドを含むplistファイルを扱う開発者にとって重要です。

試してみる — Plist ↔ JSON Converter

フルツールを開く