ExtJS中的Json数据读取问题?
服务器返回数据:ExtJS中的Json数据读取问题?,json,extjs,Json,Extjs,服务器返回数据: { "items": [{ "id": "671", "post_title": "Seche Vite Dry Fast Top Coat", "post_content": "<span style=\"color\: \#ff0000\;\"><strong>Roy Recommends:<\/strong>\u00c2\u00a0 Edith, our in-house nail
{
"items": [{
"id": "671",
"post_title": "Seche Vite Dry Fast Top Coat",
"post_content": "<span style=\"color\: \#ff0000\;\"><strong>Roy Recommends:<\/strong>\u00c2\u00a0 Edith, our in-house nail expert, swears by this product.\u00c2\u00a0 No manicure or pedicure is complete without adding this top coat as the finishing touch.<\/span>\r\n\r\nSeche Vite\u00e2\u201e\u00a2 dry fast top coat is widely acknowledged as the world\'s finest top coat.\u00c2\u00a0 Specially formulated to penetrate through nail lacquer to the base coat forming a single solid coating over the nail plate for a much more durable finish. Guaranteed not to yellow while leaving nails silky, stronger and resistant to chipping and peeling.\r\n\r\n ",
"post_excerpt": "",
"post_status": "publish",
"post_parent": "0",
"parent_sort_id": "671",
"prod_meta_data_key": "_wpsc_product_metadata",
"category": "Roy Recommends,Nail Care",
"_wpsc_price": "10",
"_wpsc_special_price": "0",
"_wpsc_sku": "",
"_wpsc_stock": "4",
"unpublish_when_none_left": "1",
"weight": 8.5,
"weight_unit": "ounce",
"height": "0",
"height_unit": "in",
"width": "0 ",
"width_unit": "in",
"length": "0",
"length_unit": "in",
"local": "0",
"international": "0",
"no_shipping": "0"
}],
"totalCount": "1"
}
我发现了一个在线工具:
其中,当我粘贴数据时,eval无法计算span和style之间的间距,因为eval只能执行expression not语句。以下是一项声明:
<span style=\"color\: \#ff0000\;\">
当我做preg\u replace(“/[]+/”,“”,$data)
。现在的问题是,我不希望在允许用户编辑文本时出现&我希望它仅显示为空格。使用我可以看出您的JSON无效。如果反斜杠(\
)不是合法JSON转义序列的一部分(\”、\\、\/、\b\f\n\r\t\u
),则必须转义它们
在这种情况下,post\u content
的值是非法的,因为它具有类似于\:
和\\\\\
的序列。将其更改为以下应该可以解决问题(当然,您必须修复服务器端代码才能正确转义JSON响应)
{
“项目”:[
{
“id”:“671”,
“post_title”:“Seche Vite干爽快干面漆”,
“发布内容”:罗伊推荐:我们的内部美甲专家伊迪丝(Edith)对该产品发誓。如果不添加此面漆作为最后一道工序,任何修甲或修脚都是不完整的。\u000d\u000a\u000d\u000a\u000d\u000a快速干燥面漆被公认为世界上最好的面漆。专门配制用于穿透nail在底漆上涂上清漆,在指甲板上形成单一的固体涂层,以获得更持久的饰面。保证不会变黄,同时使指甲丝滑、更牢固、抗剥落。\u000d\u000a\u000d\u000a“,
“post_摘录”:“,
“发布状态”:“发布”,
“post_父项”:“0”,
“父项排序id”:“671”,
“产品元数据密钥”:“\u wpsc\u产品元数据”,
“类别”:“罗伊推荐,指甲护理”,
“_wpsc_price”:“10”,
“_wpsc_特价”:“0”,
“_wpsc_sku”:”,
“_wpsc_stock”:“4”,
“未发布时取消发布”:“1”,
“重量”:8.5,
“重量单位”:“盎司”,
“高度”:“0”,
“高度单位”:“英寸”,
“宽度”:“0”,
“宽度单位”:“英寸”,
“长度”:“0”,
“长度单位”:“英寸”,
“本地”:“0”,
“国际”:“0”,
“无装运”:“0”
}
],
“totalCount”:“1”
}
使用我发现您的JSON无效。如果反斜杠(\
)不是合法的JSON转义序列的一部分(\”,\\,\/,\b\f\n\r\t\u
),则必须对其进行转义
在这种情况下,post\u content
的值是非法的,因为它具有类似于\:
和\
的序列。将其更改为以下应该可以解决问题(当然,您必须修复服务器端代码才能正确转义JSON响应)
{
“项目”:[
{
“id”:“671”,
“post_title”:“Seche Vite干爽快干面漆”,
“发布内容”:"罗伊推荐:我们的内部美甲专家伊迪丝(Edith)对该产品发誓。如果不添加此面漆作为最后一道工序,任何修甲或修脚都是不完整的。\u000d\u000a\u000d\u000a\u000d\u000a快速干燥面漆被公认为世界上最好的面漆。专门配制用于穿透nail在底漆上涂上清漆,在指甲板上形成单一的固体涂层,以获得更持久的饰面。保证不会变黄,同时使指甲丝滑、更牢固、抗剥落。\u000d\u000a\u000d\u000a“,
“post_摘录”:“,
“发布状态”:“发布”,
“post_父项”:“0”,
“父项排序id”:“671”,
“产品元数据密钥”:“\u wpsc\u产品元数据”,
“类别”:“罗伊推荐,指甲护理”,
“_wpsc_price”:“10”,
“_wpsc_特价”:“0”,
“_wpsc_sku”:”,
“_wpsc_stock”:“4”,
“未发布时取消发布”:“1”,
“重量”:8.5,
“重量单位”:“盎司”,
“高度”:“0”,
“高度单位”:“英寸”,
“宽度”:“0”,
“宽度单位”:“英寸”,
“长度”:“0”,
“长度单位”:“英寸”,
“本地”:“0”,
“国际”:“0”,
“无装运”:“0”
}
],
“totalCount”:“1”
}
我在Chrome中尝试过。Javascript中的eval()无法解析JSON字符串中的以下序列。其他的都可以
\" \\ \n \r
我在Chrome上试过。Javascript中的eval()无法解析JSON字符串中的以下序列。其他的都可以
\" \\ \n \r
u r使用哪种方法读取json字符串上面的内容?u r使用哪种方法读取json字符串上面的内容?请帮助我转义:它不是通过反斜杠或双反斜杠工作的。您不需要手动转义json字符串,您可能不会涵盖所有情况,并且最终会得到输出无效json的响应。这个json getti是如何实现的生成ng?对于这个特定的情况,只需转义双引号:
”
。因此您的JSON应该是:{“key”:“}
,正如h--n所说,eval无法解析\“char:eval(”)。您可以在控制台中执行此语句并查找“意外标识符帮助我避免了这种情况:它不能通过反斜杠或双反斜杠工作。您不需要手动转义JSON字符串,您可能无法涵盖所有情况,并且最终会得到输出无效JSON的响应。这个JSON是如何生成的?对于这个特定的情况,只需转义双引号:“”
。因此,您的JSON应该如下所示:{“key”:“}
,正如h--n所说的eval无法解析\“char:eval(“”)。您可以在控制台中执行此语句并找到“意外标识”的错误
\" \\ \n \r