导航:首页 > 净水问答 > iosjson特殊字符过滤

iosjson特殊字符过滤

发布时间:2022-07-24 07:45:03

⑴ iOS开发 密码里面含有特殊字符如何处理传给

1、在$.ajax请求中新增参数:contentType:'application/json',对要传递的json数据作序列化JSON.stringify 2、将特殊字符串替换成特定字符,在后台再进行还原

⑵ 如何处理JSON中的特殊字符

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传值的时候,如果有回车符就会挂的。我们可以使用正则来去掉回车符:

view
source
print?

1
$str = preg_replace("'([\r\n])[\s]+'", "", $str);

2

3
// 不用正则

4
$str = str_replace("\n","",$str);

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

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

view
source
print?

01
<?php

02
// $document 应包含一个 HTML 文档。

03
// 本例将去掉 HTML 标记,javascript 代码

04
// 和空白字符。还会将一些通用的

05
// HTML 实体转换成相应的文本。

06

07
$search = array ("'<script[^>]*?>.*?</script>'si", // 去掉 javascript

08
"'<[\/\!]*?[^<>]*?>'si", // 去掉 HTML 标记

09
"'([\r\n])[\s]+'", // 去掉空白字符

10
"'&(quot|#34);'i", // 替换 HTML 实体

11
"'&(amp|#38);'i",

12
"'&(lt|#60);'i",

13
"'&(gt|#62);'i",

14
"'&(nbsp|#160);'i",

15
"'&(iexcl|#161);'i",

16
"'&(cent|#162);'i",

17
"'&(pound|#163);'i",

18
"'&(|#169);'i",

19
"'&#(\d+);'e"); // 作为 PHP 代码运行

20

21
$replace = array ("",

22
"",

23
"\\1",

24
"\"",

25
"&",

26
"<",

27
">",

28
" ",

29
chr(161),

30
chr(162),

31
chr(163),

32
chr(169),

33
"chr(\\1)");

34

35
$text = preg_replace ($search, $replace, $document);

36
?>

2. HTML特殊字符

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

解决办法很简单,在JS将其渲染到HTML页面前转换一下即可:

view
source
print?

01
<script type="text/javascript">

02
var str = '<b>msg</b> #';

03
document.all.div1.innerHTML='<pre>'+str+'</pre>';

04

05
//js中的字符串正常显示在HTML页面中

06
String.prototype.displayHtml= function(){

07
//将字符串转换成数组

08
var
strArr = this.split('');

09
//HTML页面特殊字符显示,空格本质不是,但多个空格时浏览器默认只显示一个,所以替换

10
var
htmlChar="&<>";

11
for(var
i = 0; i< str.length;i++){

12
//查找是否含有特殊的HTML字符

13
if(htmlChar.indexOf(str.charAt(i)) !=-1){

14
//如果存在,则将它们转换成对应的HTML实体

15
switch
(str.charAt(i)) {

16
case
'<':

17
strArr.splice(i,1,'<');

18
break;

19
case
'>':

20
strArr.splice(i,1,'>');

21
break;

22
case
'&':

23
strArr.splice(i,1,'&');

24
}

25
}

26
}

27
return
strArr.join('');

28
}

29
alert(str.displayHtml());

30
document.all.div2.innerHTML=str.displayHtml();

31
</script>

3. escape()函数

该函数可以处理空格、斜线和其他任何可能影响浏览器的内容,并将它们转换成 Web 可用字符(比如,空格会被转换成
%20,浏览器并不会将其视为空格处理,而是不做更改,将其直接传递到服务器)。之后,服务器会(通常自动)再把它们转换回它们传输后的本来 “面目”。

view
source
print?

1
var url = "nowamagic.php?people="
+ escape(people.toJSONString());

2
request.open("GET", url, true);

3
request.onreadystatechange = updatePage;

4
request.send(null);

这种做法的缺点有两个: 在使用 GET 请求发送大块数据时,对 URL 字符串有长度限制。虽然这个限制很宽泛,但对象的 JSON
字符串表示的长度可能超出您的想象,尤其是在使用极其复杂的对象时更是如此。在跨网络以纯文本发送所有数据的时候,发送数据面临的不安全性超出了您的处理能力。

简言之,以上是 GET 请求的两个限制,而不是简单的两个与 JSON
数据相关的事情。在想要发送用户名和姓之外的更多内容,比如表单中的选择时,二者可能会需要多加注意。若要处理任何机密或极长的内容,可以使用 POST 请求。

4. 引号问题

JSON中如果包含引号或双引号,会破坏JSON的格式。有两种方法可以解决。

在入库的时候可以使用addslashes()函数处理一下字符串,给引号前加上斜杠。被改的字符包括单引号 (')、双引号 (")、反斜线 backslash
(\) 以及空字符NULL。

view
source
print?

1
$text = addslashes($text);

JavaScript的话,可以这样:

view
source
print?

1
function valueReplace(v){

2
v=v.toString().replace(new
RegExp('(["\"])', 'g'),"\\\"");

3
return
v;

4
}

5
var eValue = encodeURI($.trim(valueReplace(e.value)))

⑶ json里有特殊字符导致json错误问题如何解决

替换字符串 & 不就完事了

⑷ js过滤json数据特殊字符

用replace函数替换
例如替换换行为空格
text.replace(/\n+/,' ')

⑸ ios开发怎么过滤掉json中的html标签

</span></span></p>";

[self flattenHTML:str];

}

- (NSString *)flattenHTML:(NSString *)html {

NSScanner *theScanner;
NSString *text = nil;

theScanner = [NSScanner scannerWithString:html];

while ([theScanner isAtEnd] == NO) {
// find start of tag
[theScanner scanUpToString:@"<" intoString:NULL] ;
// find end of tag
[theScanner scanUpToString:@">" intoString:&text] ;
// replace the found tag with a space
//(you can filter multi-spaces out later if you wish)
html = [html :
[NSString stringWithFormat:@"%@>", text]
withString:@""];
} // while //

NSLog(@"-----===%@",html);
return html;
}

⑹ ios json数据中带有 json字符串怎么解析

这个你不需要理会,json的组装方式就是这样的,你只需要按钮普通的取值方式从它里面取就行了如:把传过的的对象当成是map的话,就int num = (Integer) map.get("s0"); //413 String m1 = map.get("m1").toString(); //"sdfs,123,sdf,sdfsdf,sdfsdf"

⑺ json数据中字段有特殊字符怎么解决

展开全部
这个没法解决,只能靠转义
“\”,JSON最大的缺点就是这个,所以在开发的过程中,要注意特殊字符,在强类型语言中,第三方包会自己解决这些问题。比如Java就会自动反转义。
最好的解决方式还是在开发过程中注意一点。
推荐个JSON在线解析工具给您。
1http://www.sojson.com

⑻ iOS JSON格式上传服务器,怎么把转义字符\去掉

1 NSMutableString *responseString = [NSMutableString stringWithString:[request responseString]];
2 NSString *character = nil;
3 for (int i = 0; i < responseString.length; i ++) {
4 character = [responseString substringWithRange:NSMakeRange(i, 1)];
5 if ([character isEqualToString:@"\\"])
6 [responseString deleteCharactersInRange:NSMakeRange(i, 1)];
7 }

⑼ 抓取苹果json数据,怎样过滤特殊字符

packagecn.sdeit.servlet;
importjava.io.IOException;
importjava.io.PrintWriter;
importjava.sql.Connection;
importjava.sql.PreparedStatement;
importjava.sql.SQLException;
importjava.util.Calendar;
importjavax.servlet.ServletException;
importjavax.servlet.annotation.WebServlet;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importcn.sdeit.beans.Team;
importcn.sdeit.beans.User;
importcn.sdeit.mysql.ConnectMySql;
@WebServlet(name="BuildTeam",urlPatterns={"/BuildTeam"})

{
=1L;

publicBuildTeam()
{
();
}

protectedvoiddoPost(HttpServletRequestrequest,
HttpServletResponseresponse)throwsServletException,IOException
{
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("text/html");

Teamteam=newTeam(request.getParameter("name"),
newInteger(request.getParameter("type")),
request.getParameter("words"),
((User)(request.getSession().getAttribute("oldUser"))).getEmail(),
"null","null","null","null","null",
"null","null",request.getParameter("teacher"),0,
Calendar.getInstance().get(Calendar.YEAR)
);
intresult=buildTeam(team);
if(result==0)
{
PrintWriterwriter=response.getWriter();
writer.write("抱歉!</br>创建团队失败!请核对资料后重试,若问题再次出现请联系管理员反馈您的问题!");
writer.flush();
writer.close();
}
else
{
response.sendRedirect("mine.jsp");;
}
}
privateintbuildTeam(Teamteam)
{
/*
*createtableteam
*(namevarchar(64),
*typeint,
*wordsvarchar(256),
*member1varchar(24)defaultnull,
*member2varchar(24)defaultnull,
*member3varchar(24)defaultnull,
*member4varchar(24)defaultnull,
*member5varchar(24)defaultnull,
*member6varchar(24)defaultnull,
*filevarchar(128),
*rewardvarchar(64),
*teachervarchar(24),
*chargeint,
*yearint);
*/
Stringsql="insertintoteamvalues(?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
Connectionconnection=ConnectMySql.createConnection();
PreparedStatementprepared=ConnectMySql.createPreparedStatement(connection,sql);
intcode=0;
try
{
prepared.setString(1,team.getName());
prepared.setInt(2,team.getType());
prepared.setString(3,team.getWords());
prepared.setString(4,team.getMember1());
prepared.setString(5,team.getMember2());
prepared.setString(6,team.getMember3());
prepared.setString(7,team.getMember4());
prepared.setString(8,team.getMember5());
prepared.setString(9,team.getMember6());
prepared.setString(10,team.getFile());
prepared.setString(11,team.getReward());
prepared.setString(12,team.getTeacher());
prepared.setInt(13,team.getCharge());
prepared.setInt(14,team.getYear());
code=prepared.executeUpdate();
prepared.close();
connection.close();
}catch(SQLExceptione)
{
e.printStackTrace();
}
returncode;
}
}

阅读全文

与iosjson特殊字符过滤相关的资料

热点内容
蒸馏水可不可以替代无氨水 浏览:325
弱酸性氢型阳离子交换树脂 浏览:327
鱼缸过滤系统过滤棉能当生化棉用吗 浏览:754
中水回用利用率必须达到30 浏览:672
污水培训简报 浏览:992
含硫污水处理答辩记录 浏览:511
水处理室管理制度 浏览:977
饮水机一桶水多少升合适 浏览:164
超滤净水可以 浏览:582
比亚迪汉滤芯怎么换 浏览:352
为什么油烟净化器只有高压线 浏览:645
国产污水流量计价格 浏览:259
长城m4的空气滤芯在哪里 浏览:60
净水机滤芯50G代表什么 浏览:526
mc2滤芯漏水什么问题 浏览:106
120目叠片过滤器价格 浏览:515
纳滤净水机和超滤净水机的区别 浏览:928
呼吸机过滤器多少钱 浏览:307
大型酒厂蒸馏设备 浏览:995
海水淡化多效蒸馏原理 浏览:236