導航:首頁 > 網路數據 > json傳遞大數據

json傳遞大數據

發布時間:2023-09-05 19:22:23

json傳值

JSON(javaScript Object Notation) 是一種輕量級的數據交換格式,採用完全獨立於語言的文本格式,是理想的數據交換格式。同時,JSON是 JavaScript 原生格式,這意味著在 JavaScript 中處理 JSON數據不須要任何特殊的 API 或工具包。
本文主要是對JS操作JSON的要領做下總結。
在JSON中,有兩種結構:對象和數組。
1. 一個對象以「{」(左括弧)開始,「}」(右括弧)結束。每個「名稱」後跟一個「:」(冒號);「『名稱/值』 對」之間運用 「,」(逗號)分隔。 名稱用引號括起來;值如果是字元串則必須用括弧,數值型則不須要。例如:
var o={"xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"};
2. 數組是值(value)的有序集合。一個數組以「[」(左中括弧)開始,「]」(右中括弧)結束。值之間運用 「,」(逗號)分隔。
例如:
var jsonranklist=[{"xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"},{"xlid":"zd","xldigitid":123456,"topscore":1500,"topplaytime":"2009-11-20"}];
在數據傳輸流程中,json是以文本,即字元串的形式傳遞的,而JS操作的是JSON對象,所以,JSON對象和JSON字元串之間的相互轉換是關鍵。例如:
JSON字元串:
var str1 = '{ "name": "cxh", "sex": "man" }';
JSON對象:
var str2 = { "name": "cxh", "sex": "man" };
一、JSON字元串轉換為JSON對象
要運用上面的str1,必須運用下面的要領先轉化為JSON對象:
//由JSON字元串轉換為JSON對象
var obj = eval('(' + str + ')');
或者
var obj = str.parseJSON(); //由JSON字元串轉換為JSON對象
或者
var obj = JSON.parse(str); //由JSON字元串轉換為JSON對象
然後,就可以這樣讀取:
Alert(obj.name);
Alert(obj.sex);
特別留心:如果obj本來就是一個JSON對象,那麼運用 eval()函數轉換後(哪怕是多次轉換)還是JSON對象,但是運用 parseJSON()函數處理後會有疑問(拋出語法異常)。
二、可以運用 toJSONString()或者全局要領 JSON.stringify()將JSON對象轉化為JSON字元串。
例如:
var last=obj.toJSONString(); //將JSON對象轉化為JSON字元
或者
var last=JSON.stringify(obj); //將JSON對象轉化為JSON字元
alert(last);

㈡ 如何優化很長的JSON數據

現在主流的網路請求中都採用JSON作為其數據交互格式,這主要是因為JSON有以下優勢:

但如果在開發過程中,把很長很大的JSON數據在前後端傳輸,那就說明設計工作沒做好,應該盡量避免這種數據傳輸,但也可以從下面幾個方面進行下優化:

在 Skylake 處理器上,各種解析器解析同一個大數據量的JSON文件的速度(以 GB/s 為單位)如下所示:

我們知道,JSON作為一種輕量級的數據交換格式,現在被廣泛應用,特別是在API層,返回數據格式基本上都是JSON。但是, JSON字元串如果過長,那在網路傳輸中也存在耗時的 ,站在性能角度我們需要合理優化JSON。

1、伺服器端 開啟GZip壓縮

主流的服務端都支持GZip壓縮,對於一般的純文本內容GZip壓縮率在35%以上,這樣做的好處也很明顯:

2、 鍵名縮短

對於結果集而言,數據都是查詢循環輸出的,所以當我們把鍵名縮短也變相壓縮了JSON文本長度。比如原本的 {"name":"張三"} 我們可以寫為 {"a":"張三"}

3、JSON中的 中文避免被轉為Unicode編碼

現在也有不少人喜歡將JSON中的漢字轉為Unicode編碼,此時JSON文本內容就會變得很長,如果避免漢字轉碼,可以控制文本長度。

1,開啟gzip,壓縮率很高,即便是很長的文本,在網路中傳輸量也很小 。

2,不建議分次請求,除非是業務需要。連接次數過多,加大了並發的壓力。

3,提醒用戶點擊的做法可以通過按鈕反饋或loading條來做。

4,如果有可能,考慮提前預讀你可以這樣,在一個隱藏的 iframe 裡面請求伺服器,返回值是這樣的: <script> parent.notifyDataArrive(YOURS_JSON_DATA); </script>

㈢ 【JSON】JSON在前端和後端傳遞

後端:我們假定使用的是java語言

前端:毫無疑問是js

java語言:是一種強類型的語言,必須定義類型,然後生成實例;而js卻不是,雖然它也是面向對象的,但是它並沒有先定義類這一種概念(但是js也有類型),它是基於原型的一種模式,和java完全不同。很顯然,二者的原理,機制,語法並不能兼容。二者產生的對象並不能被對方解讀。再來看網路傳輸,通常就是http/tcp協議嘍,使用的其實是請求-響應,再說白了即使字元串,不論後台傳來的是什麼類型的數據,也不論前台傳回的什麼類型的數據,網路層統統當作字元串處理,它也沒有辦法來解析類型啊!說到這里,前後台傳數據也就只能用字元串了,那也就意味著它們各自都要完成一個轉換過程,把要發送的轉換成字元串,把要收到的字元串解析成自己的對象。因為傳輸的字元串會涉及前後台雙方的解析和處理,所以雙方都必須認識或者知道字元串該怎麼轉,也就是說,最好能有一種通用的規則來編輯,轉換字元串,這個標准或者協議就是JSON,JSON就是用來交換數據的,是一種string,一種獨立於平台的數據格式。

這樣一來,前台就需要把自己的數據類型轉成JSON,然後發給後台,後台在用JSON來解析數據,轉換成自己的類型。後台傳前台一樣。那麼,怎麼把自己的數據轉成JSON呢?

`JSON`對象可以通過JavaScript存取屬性!JSON對象封裝成JSON字元串經常用於前後台傳輸數據!

如果在前端使用,那麼JSON對象可以通過 對象.屬性名 來調用,如果是json字元串,那麼只是字元串了!

在數據傳輸過程中,JSON是以文本、即字元串的形式傳遞的,而JavaScript操作的是JSON對象,所以,JSON對象和JSON字元串之間的相互轉換是關鍵。
JSON字元串:var str = '{ name: 'xmt', sex: 'woman' }';
JSON對象:   var str = { name: 'xmt', sex: 'woman' };

JSON字元串轉化為JSON對象:var obj = JSON.parse(str) ;
JSON對象轉化為JSON字元串:var str = JSON.stringify(obj);

閱讀全文

與json傳遞大數據相關的資料

熱點內容
javaweb面試 瀏覽:4
qq空間說說點不進去 瀏覽:772
nodejscms系統 瀏覽:822
追星數據組是什麼東西 瀏覽:3
文件的格式怎麼建立 瀏覽:529
免費yoosee蘋果下載 瀏覽:447
網路大國與大數據 瀏覽:770
怎麼學plc的編程 瀏覽:643
javadnf輔助源碼 瀏覽:973
什麼app可以畫二維圖像 瀏覽:125
手機如何設置副路由器設置密碼 瀏覽:592
如何讓已經壓縮的文件恢復 瀏覽:344
網路atm取款支出是什麼意思 瀏覽:942
ios查看wifi密碼插件 瀏覽:742
win10因藍屏 瀏覽:322
app病毒是如何植入的 瀏覽:384
hadoop文件系統查看 瀏覽:317
熱門app免流都有哪些 瀏覽:619
cad怎麼轉換mpgis文件 瀏覽:631
win10照片不能用了 瀏覽:878

友情鏈接