1. 程式人生 > >前端獲取後臺json過程由於轉義字元出現的問題

前端獲取後臺json過程由於轉義字元出現的問題

資料庫儲存資訊,特別是什麼屬性名稱,由使用者手動輸入,通常會包含有一些特殊字元,比如說雙引號,單引號,轉義字元\等

取資料將其顯示在頁面上的時候,特別是當我們把這些資訊以json的格式返回給頁面,前端外掛拿著json來載入一些結果,比如一棵樹。

由於json格式是{"A":"XXXX"}的形式

那如果XXXX包含了雙引號,單引號或者轉義字元,那麼從資料庫獲取的資料如果是想自己在後臺拼湊成一個json字串返回頁面去載入的話肯定需要先處理一下,不然就會出現json解析失敗的錯誤。

如果資料庫儲存的是雙引號。那麼後臺取到的資料應該是\",所以我們要將這兩個字元替換成\\\"

但是這裡要注意,因為你是要將內容拼接到json字串裡,也就是說變成字串的時候,也會將轉義字元給轉義,那麼我們替換的那些工作就沒用了

因此,這裡需要再加一層轉義:\\\"  =>  \\\\\\\" 也就是每個字元前面都加個轉義字元一遍。

所以我們拼接成的json就是"{\"A\":\"\\\\\\\"\"}";

將json字串傳遞到前端,前端首先獲取字串的內容會轉義一次:{"A":"\\\""}

然後將字串轉為json給前端元件使用。這時又轉義一次:{"A":"\""}

最後前端元件要顯示json的A欄位"\""(它是個字串),展示在頁面上又轉義了一次,於是拿到了雙引號 "

以上就是前端獲取後臺json字串的過程。 

相關推薦

前端獲取後臺json過程由於轉義字元出現的問題

資料庫儲存資訊,特別是什麼屬性名稱,由使用者手動輸入,通常會包含有一些特殊字元,比如說雙引號,單引號,轉義字元\等 取資料將其顯示在頁面上的時候,特別是當我們把這些資訊以json的格式返回給頁面,前端

前端 ajax 獲取後臺json數據 解析

$.ajax 個數 讓我 封裝 遍歷 tex ext bsp turn 先貼代碼 function edit(node) { var customerid = $(node).parents("tr").children().eq(0).te

前端獲取後臺傳輸過來是資料 {張三:12} 解析為[object object],獲取其中內容

昨天遇到前端傳輸過來的資料為[{張三:12},{李四:23}],後臺用的是map格式,我在前端js中暫未找到直接呼叫物件內容的方法,故利用以下方法來獲取: $.each(data.data,function(i,v){ info += "<option value=" + v[O

yii2.0載入獲取後臺json檔案

$.getJSON('/themes/demo/json/road.json',{}, function (data) {    console.log(data);    map.setCenter(new AMap.LngLat(121.4544419

iOS 去除JSON裡的轉義字元

//iOS 去除JSON裡的轉義字元 //    首先將返回格式設為二進位制格式     manager.responseSerializer = [AFHTTPResponseSerial

Gson庫和Android自帶JSON解析對轉義字元的處理存在不同

遇到一坑,以前用的是Gson庫,現在改為Android自帶的JSON解析,後端收到資料有時會解析失敗,查詢原因,發現Gson庫和Android自帶JSON解析對轉義字元的處理存在稍許的不同。 舉例如下: String s1 = "https://blog

正確的前端後臺json方式

DEMO: var data=JSON.stringify({"page": {"pagenow": 1,"pagesize": 20},"file":{"name":"jpg"},"catalogs":[{"id":1},{"id":2}]});

c#學習之前端後臺json處理

1、ajax提交json字串請求老是出現請求失敗的解決       方法1:如果指定 dataType: 'json',則對Json格式的要求就非常嚴格起來了,data資料的書寫參考格式: data:"{\"success\":true,\"mesg\":\"succes

spring boot 接收JSON時發生轉義字元繫結物件失敗

在做Spring boot 專案時發生json轉義字元繫結物件失敗,原因是json裡面有些欄位包括空格,反斜槓等,如果框架沒有對這些json進行轉化時,就會報類似如下錯誤 org.codehaus.

java 解析json, 帶轉義字元json

一:解析普通json       1:不帶轉化字元        格式{"type":"ONLINE_SHIPS","message":{"currentTime":1400077615368,"direction":0,"id":1,"latitude":29.55

ECharts獲取後臺json資料

ECharts給的例項中,資料都是固定的,如果想要動態繫結資料,就需要從後臺查詢,然後返回資料給echarts來生成圖表。本文以柱狀圖為例,介紹了前臺如何獲取後臺返回的資料,來顯示圖表的流程。本文分為

利用hashmap獲取鍵盤輸入字串中每個字元出現的次數

class hello { public static void main(String[] args) throws ParseException { Scanner sc = new Scanner(System.in); String s = sc.nextLine();

前端後臺處理轉義字元函式

前端獲取的內容通過轉義封裝成json格式傳到後臺 function repCom(str){ var str_r = (str+"").replace(/\r\n/g,"$lt;br/$gt;"); str_r = str_r.replace(/\r/g,"$lt;br") str

Jquery 使用Ajax獲取後臺返回的Json數據後,頁面處理

[] object inpu empty 獲取 reader form 取數 oid <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtm

Js -----後臺json數據,前端生成下載text文件

isp console 導入失敗 string ech eat 文件 alert 不支持 需要引入 <script src="/assets/libs/single_file/jquery.min.js"></script> <scrip

前端獲取圖片壓縮後上傳給後臺

state das progress tee 解決辦法 字符 buffer arc 前端   此前有同事跟我聊過關於移動端用canvas壓縮圖片後再上傳的功能,最近有了點空閑時間,所以就實踐了一下。demo效果鏈接在文章底部貼出。   在做移動端圖片上傳的時候,用戶傳

json去除轉義字元

{"success":true,"value":"[{\"lastUpdateTime\":\"2018-10-10 13:52:18\",\"lastUpdateStafNo\":\"5473401\",\"lastUpdateStafNam\":\"\",\"menuNo\":\"0231\",

Android json資料中有轉義字元

對於Android來說 也許伺服器寫的資料 並不如意,但是我們要逐個擊破,例如這個資料 {     "code": "200",     "message": "OK",     "result": {    

前臺獲取後臺傳回的json格式資料,日期格式是時間戳long型別的問題

為了獲得的是2020-12-12 12-12-12這種格式,如下做: @ResponseBody public List<User> getUsers(){ List<User> users = ... return users

java後臺處理前端傳的json

關於json,就不在多做介紹了,直接進入正題: 舉例子: 1.現在前臺做了一個Ajax請求,往資料庫中新增資料:  var json='{"goodName":"果粒橙","goodTitle":"這是一種好喝的","goodMessage":"這個很好喝,你還想喝 嗎。。