私は、JSON オブジェクトをステップスルーして解析するコードに取り組んでいる PHP 開発者です。これにより、最終的な形式で出力する前にデータを操作できます。JSON の例を次に示します (非常に大きいため、必要なアイテムのほとんどを削除し、無効な部分を配置するだけです)。
[
{
"items": [
{
// this is valid and what I need.
}
],
"espots": [
{
"content": "
[TopNavigation_Appliances]
"
}
]
},
ソースから JSON を効果的に取り除き、厳密に json_decode() に渡される JSON データにしました。ただし、JSON オブジェクトにはコードが実際に機能する必要のない無効な部分があるため、常に null の結果が返されます。JSON の "espots" 部分全体はアプリケーション内では不要ですが、複数行の "content" 部分が json_decode() を台無しにしています。RegExまたはいくつかの気の利いたPHPを介してPHPに方法があり、JSON出力からこれらの項目を取り除き、json_decode()を適切に使用してn配列を取得し、コードが必要な方法で操作および処理できるようにしますに?
JSONLint (および他の 1 つのバリデーター) によって表示されるエラー メッセージを次に示します。
Parse error on line 263:
... "content": "[TopNavigation_App
-----------------------^
Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '['
「[が無効な JSON を引き起こしている」という情報を収集していますが、私は Json の専門家ではありません。
私は無駄に次のことを試みました:
- 元の形式の行の str_replace()
- trim() と str_replace
- トリム()
- str_replace 改行を削除してから、JSON の犯人部分を str_replace() しようとします。