2011-08-08 12 views
0

最初の結果だけで罰金$ .parseJSON(データ)を解析します2番目のJSONオブジェクトが無効なのはなぜですか?

{"result":{"output":"<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" id=\"krd_table\" class=\"0\"><tr><th>Agency Name</th><th>Email</th><th>Phone</th><th>Edit</th><th>View</th></tr><tr><td>CLASP Homes - Westport</td><td class=\"item\">[email protected]</td><td class=\"item\">222-222-2222</td><td class=\"item\"><a href=\"/agencies/edit/31\" class=\"edit_row\">Edit</a></td><td class=\"item\"><a href=\"/agencies/view/31\" class=\"view_row\">View</a></td></tr><tr><td>Horizons at Greens Farms</td><td class=\"item\">[email protected] OR [email protected]</td><td class=\"item\">222-222-2222</td><td class=\"item\"><a href=\"/agencies/edit/67\" class=\"edit_row\">Edit</a></td><td class=\"item\"><a href=\"/agencies/view/67\" class=\"view_row\">View</a></td></tr></table>", "num_results":"2"}} 

秒しかし、無効なJSONで同じ出力と施工実績を通じて:

{"result":{"output":"<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" id=\"krd_table\" class=\"0\"><tr><th>Agency Name</th><th>Email</th><th>Phone</th><th>Edit</th><th>View</th></tr><tr><td>Center for Prevention & Recovery - Positive Directions (The)</td><td class=\"item\">[email protected]</td><td class=\"item\">222-222-22224</td><td class=\"item\"><a href=\"/agencies/edit/23\" class=\"edit_row\">Edit</a></td><td class=\"item\"><a href=\"/agencies/view/23\" class=\"view_row\">View</a></td></tr><tr><td>Children\'s Community Development Center</td><td class=\"item\">[email protected]</td><td class=\"item\">222-222-2222</td><td class=\"item\"><a href=\"/agencies/edit/28\" class=\"edit_row\">Edit</a></td><td class=\"item\"><a href=\"/agencies/view/28\" class=\"view_row\">View</a></td></tr><tr><td>CLASP Homes - Westport</td><td class=\"item\">[email protected]</td><td class=\"item\">222-222-2222</td><td class=\"item\"><a href=\"/agencies/edit/31\" class=\"edit_row\">Edit</a></td><td class=\"item\"><a href=\"/agencies/view/31\" class=\"view_row\">View</a></td></tr><tr><td>Horizons at Greens Farms - Westport</td><td class=\"item\">[email protected] OR [email protected]</td><td class=\"item\">222-222-2222</td><td class=\"item\"><a href=\"/agencies/edit/67\" class=\"edit_row\">Edit</a></td><td class=\"item\"><a href=\"/agencies/view/67\" class=\"view_row\">View</a></td></tr><tr><td>Interfaith Housing Association</td><td class=\"item\">[email protected]</td><td class=\"item\">222-222-2222</td><td class=\"item\"><a href=\"/agencies/edit/72\" class=\"edit_row\">Edit</a></td><td class=\"item\"><a href=\"/agencies/view/72\" class=\"view_row\">View</a></td></tr><tr><td>Project Return</td><td class=\"item\">[email protected]</td><td class=\"item\">222-222-2222</td><td class=\"item\"><a href=\"/agencies/edit/103\" class=\"edit_row\">Edit</a></td><td class=\"item\"><a href=\"/agencies/view/103\" class=\"view_row\">View</a></td></tr><tr><td>ITNCoastalCT (formerly CoastalCT Senior Transportation)</td><td class=\"item\">[email protected]</td><td class=\"item\">222-222-2222</td><td class=\"item\"><a href=\"/agencies/edit/164\" class=\"edit_row\">Edit</a></td><td class=\"item\"><a href=\"/agencies/view/164\" class=\"view_row\">View</a></td></tr><tr><td>Kim\'s Agency</td><td class=\"item\">[email protected]</td><td class=\"item\">222-222-2222</td><td class=\"item\"><a href=\"/agencies/edit/189\" class=\"edit_row\">Edit</a></td><td class=\"item\"><a href=\"/agencies/view/189\" class=\"view_row\">View</a></td></tr></table>", "num_results":"8"}} 

任意のアイデアをなぜこれが起こっています? ありがとう リッチ

更新: スラッシュは削除されましたが、それでも無効になります。ここにはないバージョンがあります。 JSONLintは私に語った:

Parse error on line 3: 
...{  "output": '<tablecellspacing=" 
----------------------^ 
Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '[' 




{"result":{"output":'<table cellspacing="0" cellpadding="0" border="0" id="krd_table" class="0"><tr><th>Agency Name</th><th>Email</th><th>Phone</th><th>Edit</th><th>View</th></tr><tr><td>CLASP Homes - Westport</td><td class="item">[email protected]</td><td class="item">222-222-2222</td><td class="item"><a href="/agencies/edit/31" class="edit_row">Edit</a></td><td class="item"><a href="/agencies/view/31" class="view_row">View</a></td></tr><tr><td>Horizons at Greens Farms - Westport</td><td class="item">[email protected]</td><td class="item">222-222-2222</td><td class="item"><a href="/agencies/edit/67" class="edit_row">Edit</a></td><td class="item"><a href="/agencies/view/67" class="view_row">View</a></td></tr></table>', "num_results":"2"}} 

フォローアップ が、私はここに問題を引き起こしてエスケープする必要れた属性の周りに二重引用符を考え出しました。全員がコンテンツ内の一重引用符を指摘しているので、エスケープしないでください。また、&の値を二重引用符で囲む必要があります。 皆様のご意見ありがとうございます。

+4

これらのメールアドレスと電話番号をすべて削除するには、投稿を編集する必要があります。 – Cfreak

+0

http://jsonlint.com/を使用して正確性を確認できます。 –

+0

@Cfreak、チップのおかげで、私は数字とアドレスを削除しました。 –

答えて

3

一重引用符をエスケープする必要はありません。 \''に置き換えると、検証されます。

+0

値が二重引用符で囲まれているため、テーブル属性がここで問題を引き起こしているかのようです。したがって、属性はここでエスケープする必要があります。正しい? –

+0

まあ、もう一度引用符を変更しました! JSONでは二重引用符を使用します。だからオリジナルに戻りますが、一重引用符だけをエスケープして二重引用符をエスケープしないでください。 – Joe

+0

ああ、私はこれをちょっと混乱させているので、出力値は二重引用符で囲まれていますが、二重引用符で囲まれた属性のためにエラーが返されます。それらをエスケープすると有効になります。 –

1

あなたは単一のアポストロフィをエスケープしていますが、そうしないでください。

3
Children\'s Community Development Center 

二重引用符で囲まれた文字列では、一重引用符をエスケープしないでください。文字列に\'というインスタンスがあります。不要なものを取り除いて\とし、それを正常に検証します。

1

ここでは、エスケープされた単一引用符がKim\'s AgencyChildren\'s Community Development Centerであると思います。これらはエスケープする必要はなく、二重引用符だけです。

関連する問題