導航:首頁 > 編程語言 > javajson特殊字元

javajson特殊字元

發布時間:2022-03-11 16:20:29

Ⅰ json特殊字元有哪些

1:引號 ,如果是使用單引號,來括值的話,那String 中 ' 單引號為特殊字元
2:正斜杠,反斜杠,換行符號等。另外,必須用 (") 而非 (') 表示字元串

Ⅱ 如何處理JSON中的特殊字元

JSON傳值的時候,如果有回車符就會掛的。我們可以使用正則來去掉回車符:
1 $str = preg_replace("'([\r\n])[\s]+'", "", $str);
2
3 // 不用正則
4 $str = str_replace("\n","",$str);
轉出來的字元串就沒有回車符的困擾了。
順便記錄一個php過濾腳本:
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]+'", /

Ⅲ json格式如何讀取有特殊字元的數據!內詳!

json格式是{"a":"b","c":"d"},所以你從資料庫讀出的值如果包含{,",逗號,這類構造json格式的特殊字元,那麼就容易破壞json數據的格式,自然無法正確讀出,用replace方法替換掉特殊字元,在特殊字元前加\。
例如:String s = "a:b,c";s.replace(":","\:").replace(",","\,");

Ⅳ json怎麼解析特殊字元

1. 回車問題
JSON傳值的時候,如果有回車符就會掛的。我們可以使用正則來去掉回車符:
1 $str = preg_replace("'([\r\n])[\s]+'", "", $str);
2

3 // 不用正則
4 $str = str_replace("\n","",$str);
轉出來的字元串就沒有回車符的困擾了。
順便記錄一個PHP過濾腳本:
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頁面前轉換一下即可:
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,瀏覽器並不會將其視為空格處理,而是不做更改,將其直接傳遞到伺服器)。之後,伺服器會(通常自動)再把它們轉換回它們傳輸後的本來 「面目」。
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。
1 $text = addslashes($text);
JavaScript的話,可以這樣:
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最大的缺點就是這個,所以在開發的過程中,要注意特殊字元,在強類型語言中,第三方包會自己解決這些問題。比如Java就會自動反轉義。
最好的解決方式還是在開發過程中注意一點。
推薦個JSON在線解析工具給您。
1http://www.sojson.com

Ⅵ java Json 串中的轉義字元

帶有轉義字元的java Json串 如下

{"type":"ONLINE_SHIPS","message":"{"currentTime":1400077615368,"direction":0,"id":1,"latitude":29.5506,"longitude":106.6466}"}

解析時先把它轉化成字元串就可以了 如下

JSONObjectjsonObject=newJSONObject(jsonstr);
Stringjsonstrtemp=jsonObject.optString("message");

解析獲取json字元串里的值時,建議用jsonObject.optString的方式,它相較於傳統的

jsonObject.getString方式 在得不到你想要的值時候返回空字元串, 而getString的方式

會拋出異常

Ⅶ java後台怎麼解析含有特殊字元的json字元串,如含有逗號,冒號等特殊字元

這個你不需要理會,json的組裝方式就是這樣的,你只需要按鈕普通的取值方式從它裡面取就行了如:把傳過的的對象當成是map的話,就int num = (Integer) map.get("s0"); //413
String m1 = map.get("m1").toString(); //"sdfs,123,sdf,sdfsdf,sdfsdf"

Ⅷ 如何處理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中的特殊字元

1) 安裝SNMP
略,請參閱LINUX系統SNMP安裝說明,一般情況下Linux中 的均已經自動安裝了SNMP服務。以下命令可以檢測SNMP服務是否安裝以及安裝的文件包。
[root@idc ~]# rpm -qa |grep snmp
net-snmp-libs-5.1.2-11.EL4.7
net-snmp-5.1.2-11.EL4.7

2) 配置SNMP
按照如下方式修改/etc/snmp/snmpd.conf文件
A、修改默認的community string(SUM中SNMP讀值密碼)
com2sec notConfigUser default public
將public修改為你才知道的字元串
將「default」改為你想哪台機器可以看到你 的snmp信息,比如SUM所在IP為:10.10.10.10, 就改成這個IP。不改表示所有機器充許。
B、把下面的#號去掉
#view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc
啟用全部功能可以使用如下一行(如果沒有可以加入一行):
view all included .1 80
C、把下面的語句
access notConfigGroup "" any noauth exact systemview none none
改成:
access notConfigGroup "" any noauth exact mib2 none none
或是:
access notConfigGroup "" any noauth exact all none none
3) 啟動與停止SNMP
一般使用:service snmpd start|stop|restart命令。或是:
#/etc/rc.d/init.d/snmpd restart
4) 防火牆
如果Linux啟動了防火牆,請開放UDP的161端 口。確保Linux的iptables防火牆對SUM監控伺服器開放 了udp 161埠的訪問許可權
可使用iptables ?L ?n 查看當前iptables規則
可編輯/etc/sysconfig/iptables文 件來修改iptables規則。

Ⅹ json字元串中需要轉義的字元有哪些

題主記住一點,但凡會造成字元串被截斷、未關閉及包裹情況的字元,就必須進行轉義。

如「你好啊「小傢伙」」,「小傢伙」外部的雙引號和最外部的雙引號造成了包裹;

如「你好啊「小傢伙」,中間的雙引號未關閉且和前後兩個引號造成了混亂;

如果想進行在線調試和校驗的話 可以訪問網頁鏈接進行嘗試

閱讀全文

與javajson特殊字元相關的資料

熱點內容
安卓手機感光器靈敏怎麼解決 瀏覽:457
程序員副業合作利益分配 瀏覽:284
老闆手機裝什麼app 瀏覽:495
洪城一卡通app有什麼作用 瀏覽:451
照片源碼轉換 瀏覽:425
交車貸需要哪個app可以交 瀏覽:926
java介面的實現方式 瀏覽:933
怎麼在伺服器弄貨幣 瀏覽:553
伺服器怎麼設置玩家稱號 瀏覽:995
現在的單片機漲價 瀏覽:199
經濟學原理pdf曼昆 瀏覽:88
最主要的加密方式是什麼 瀏覽:549
簡單的解壓畫法 瀏覽:692
深圳雲伺服器平安 瀏覽:351
正品溯源碼燕碎多少錢一斤 瀏覽:713
為什麼做淘寶需要伺服器 瀏覽:569
單片機頻率設計 瀏覽:908
奇瑞E3壓縮機 瀏覽:534
我的世界為什麼一進伺服器白屏 瀏覽:934
通達信海洋指標源碼 瀏覽:538