首页 > 语言 > JavaScript > 正文

如何处理JSON中的特殊字符

2024-05-06 15:05:58
字体:
来源:转载
供稿:网友

JSON 是适用于 Ajax 应用程序的一种有效格式,原因是它使 JavaScript 对象和字符串值之间得以快速转换。由于 Ajax 应用程序非常适合将纯文本发送给服务器端程序并对应地接收纯文本,相比不能生成文本的 API,能生成文本的 API 自然更可取;而且,JSON 让您能够处理本地 JavaScript 对象,而无需为如何表示这些对象多费心思。

XML 也可以提供文本方面的类似益处,但用于将 JavaScript 对象转换成 XML 的几个现有 API 没有 JSON API 成熟;有时,您必须在创建和处理 JavaScript 对象时格外谨慎以确保所进行的处理能与所选用的 XML 会话 API 协作。但对于 JSON,情况就大不相同:它能处理几乎所有可能的对象类型,并会返回给您一个非常好的 JSON 数据表示。 因此,JSON 的最大价值在于可以将 JavaScript 真的作为 JavaScript 而非数据格式语言进行处理。

您所学到的所有有关使用 JavaScript 对象的技巧都可以应用到代码中,而无需为如何将这些对象转变成文本而多费心思。

1. 回车问题

JSON传值的时候,如果有回车符就会挂的。我们可以使用正则来去掉回车符:

$str = preg_replace("'([/r/n])[/s]+'", "", $str);  // 不用正则  $str = str_replace("/n","",$str); 

转出来的字符串就没有回车符的困扰了。

顺便记录一个PHP过滤脚本:

 <?php  // $document 应包含一个 HTML 文档。 // 本例将去掉 HTML 标记,javascript 代码 // 和空白字符。还会将一些通用的  // HTML 实体转换成相应的文本。  $search = array ("'<script[^>]*?>.*?</script>'si", // 去掉 javascript          "'<[///!]*?[^<>]*?>'si",      // 去掉 HTML 标记          "'([/r/n])[/s]+'",         // 去掉空白字符          "'&(quot|#34);'i",         // 替换 HTML 实体          "'&(amp|#38);'i",          "'&(lt|#60);'i",          "'&(gt|#62);'i",          "'&(nbsp|#160);'i",          "'&(iexcl|#161);'i",          "'&(cent|#162);'i",          "'&(pound|#163);'i",          "'&(copy|#169);'i",          "'&#(/d+);'e");          // 作为 PHP 代码运行  $replace = array ("",           "",           "//1",           "/"",          "&",           "<",           ">",           " ",          chr(161),           chr(162),           chr(163),          chr(169),           "chr(//1)");  $text = preg_replace ($search, $replace, $document);  ?> 

2. HTML特殊字符

从服务器端以JSON格式将数据传递到客户端后,通过JS显示在HTML页面时,有一些特殊字符不能直接显示,如后台传递过来的是 '<b>msg</b> #' 通过JS显示在HTML页面中时,显示成了 msg # ,并不是msg #,这是由于<与>之间的内容看作是HTML标签了,而以&开头的 与#为HTML实体,所以显示不正常。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选