javascript - 为什么第二个 JSON 对象无效?

标签 javascript json

第一个结果解析 $.parseJSON(data) 很好:

{"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\">me@email.org</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\">me@email.org OR mme@email.org</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\">me@email.org</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\">me@email.org</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\">me@email.org</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\">me@email.org OR me@email.org</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\">me@email.org</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\">me@email.org</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\">me@email.org</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\">me@email.org</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">me@email.com</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">me@email.com</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"}}

跟进 我发现属性周围的双引号导致了这里的问题,需要转义。正如每个人都指出的那样,内容中的单引号不应被转义,键和值也需要用双引号引起来。 感谢大家的意见。

最佳答案

您不需要转义单引号。将 \' 替换为 ',您将进行验证。

关于javascript - 为什么第二个 JSON 对象无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6986663/

相关文章:

javascript - get_postBackElement() 始终未定义

javascript - 如何使用 jquery 向拖放中的拖放元素添加属性?

javascript - 使用javascript从对象数组中查找象限

javascript - 如何从 Twitter API 获取单独的主题标签? (在javascript中使用json)

jquery - Facebook阻止了我的JSON请求

javascript - 导出数组中元素的所有可能组合

javascript - 如何在 ReactJS 中将列表中的值存储到对象数组中

python - sed 不适用于大文件[寻找其他选项]

javascript - IE10 无法正确解析 JSON

javascript - 通过 API post 请求将数十万个 JSON 对象发送到数据库