1. 程式人生 > >淺談JSON.stringfy語法

淺談JSON.stringfy語法

JSON.stringfy作用:這個函式的作用主要是為了系列化物件的。 
可能有些人對系列化這個詞過敏,我的理解很簡單。就是說把原來是物件的型別轉換成字串型別(或者更確切的說是json型別的)。就這麼簡單。打個比方說,你有一個類,那麼你可以通過這個方法轉換成相應的  json型別的。很簡單吧。 
接著看。 
語法: 
JSON.stringify(value [, replacer] [, space]) 
value:是必須要的欄位。就是你輸入的物件,比如陣列啊,類啊等等。 
replacer:這個是可選的。它又分為2種方式,一種是方法,第二種是陣列。 
情況一:我們先說資料,通過我們後面的實驗可以知道,它是和第一個有關係的。一般來說,我們系列化後的結果是通過鍵值對來進行表示的。 
比如說: 
name:"lan",age:25 
這種形式。 
所以,如果這種形式的話,如果第二個的值在第一個存在,那麼的話就以第二個的值做key,第一個值為value進行表示,如果不存在,sorry,忽略。【是不是有點抽象,我也這麼覺得,不過你等一下看實驗 就OK了。。呼呼。】 
情況二:如果是方法,那很簡單,就是說把系列化後的每一個物件(記住 是每一個)傳進方法裡面進行處理。 
space:很好理解,用什麼來做分隔符的。 
1.如果省略的話,那麼顯示出來的值 就沒有分隔符。直接輸出來 
2.如果是一個數字的話,那麼它就定義縮排幾個字元,當然 如果大於10 ,則最大值為10. 
3.如果是一些轉義字元,比如“\t”,表示回車,那麼它每行一個回車。 
4.如果僅僅是字串,OK,就在每行輸出值的時候把這些字串附加上去就OK。當然,最大長度也是10個字元。 
開始用例項說明;
 
1.只有一個引數的情況下: 
複製程式碼程式碼如下:
var student = new Object(); 
student.name = "Lanny"; 
student.age = "25"; 
student.location = "China"; 
var json = JSON.stringify(student); 
alert(student); 

結果如下: 

有些人可能會懷疑JSON.stringify的作用,OK。那假如,我們不要這個函式。程式碼下面的樣子: 
複製程式碼程式碼如下:
var student = new Object(); 
student.name = "Lanny"; 
student.age = "25"; 
student.location = "China"; 

// var json = JSON.stringify(student); 
alert(student); 

 恭喜你 得到的結果是: 

沒騙你吧,繼續。
2.第二個引數存在,並且第二個引數還是function的時候 

複製程式碼程式碼如下:
var students = new Array() ; 
students[0] = "Lanny"; 
students[1] = "dong"; 
students[2] = "I love you"; 
var json = JSON.stringify(students,switchUpper); 
function switchUpper(key, value) { 
return value.toString().toUpperCase(); 

alert(json); 

        //var json = JSON.stringify(students, function (key,value) { 

        //return value.toString().toUpperCase(); 

       //}); 

    上面的方法也可以換成下面的,2個都是一樣,只是寫法有那麼一點點的不一樣而已。 
 得到結果如下: 

3.第二個引數存在,並且第二個引數不是function,而是陣列的時候。 
3.1 【誤區】如果第一個引數是陣列,第二個引數也是陣列的話,只顯示第一個引數的值。 
比如: 

複製程式碼程式碼如下:
var students = new Array() ; 
students[0] = "Lanny"; 
students[1] = "dong"; 
students[2] = "I love you"; 
var stu = new Array(); 
stu[0] = "1"; 
stu[1] = "2"; 
var json = JSON.stringify(students,stu); 
alert(json); 

 sorry 得到的結果就是: 

第二個被忽略了,只是第一個被系列化了。 

3.2 如果第一個是物件(這裡說的物件就像在C#裡面可以進行new的),第二個是陣列的。 

那麼如果第二個的value在第一個存在,那麼的話就以第二個的值做key,第一個值為value進行表示 
複製程式碼程式碼如下:
var student = new Object(); 
student.qq = "5485891512"; 
student.name = "Lanny"; 
student.age = 25; 

var stu = new Array(); 
stu[0] = "qq"; 
stu[1] = "age"; 
stu[2] = "Hi";//這個student物件裡不存在。 

var json = JSON.stringify(student,stu); 
alert(json); 

 得到的結果如下: 

因為stu[2] = "Hi";這個Hi 在第一個找不到,所以就不進行顯示了。 

4.第三個引數 

4.1.如果省略的話,那麼顯示出來的值 就沒有分隔符。直接輸出來 

比如: 
複製程式碼程式碼如下:
var student = new Object(); 
student.qq = "5485891512"; 
student.name = "Lanny"; 
student.age = 25; 

var stu = new Array(); 
stu[0] = "qq"; 
stu[1] = "age"; 
stu[2] = "Hi"; 

var json = JSON.stringify(student,stu); 
alert(json); 

 輸出的就是: 

4.2.如果是一個數字的話,那麼它就定義縮排幾個字元,當然 如果大於10 ,則最大值為10. 
複製程式碼程式碼如下:
var student = new Object(); 
student.qq = "5485891512"; 
student.name = "Lanny"; 
student.age = 25; 

var stu = new Array(); 
stu[0] = "qq"; 
stu[1] = "age"; 
stu[2] = "Hi"; 

var json = JSON.stringify(student,stu,100);//注意這裡的100 
alert(json); 

那麼得到的是: 

空開來了10個字元。 

4.3.如果是一些轉義字元,比如“\t”,表示回車,那麼它每行一個回車。 

也是一樣。 

4.4.如果僅僅是字串,OK,就在每行輸出值的時候把這些字串附加上去就OK。當然,最大長度也是10個字元。 

如果是var json = JSON.stringify(student,stu,“HaiKou”);//

就這樣吧 。good night。 

相關推薦

JSON.stringfy語法

JSON.stringfy作用:這個函式的作用主要是為了系列化物件的。  可能有些人對系列化這個詞過敏,我的理解很簡單。就是說把原來是物件的型別轉換成字串型別(或者更確切的說是json型別的)。就這麼簡單。打個比方說,你有一個類,那麼你可以通過這個方法轉換成相應的  json型別的。很簡單吧。  接著看。 

JSON.stringify 方法

分數 前言 lB cheng toolbar 讀取 處理 值轉換 bsp 一、前言 最近項目中,遇到需要將對象轉換成字符串進行傳遞,上次寫過一篇文章關於json字符串轉換成json對象,json對象轉換成字符串,值轉換成字符串,字符串轉成值。當時主要是用在有時候處理字符串

JSON HiJacking攻擊

方式 www 完成 html 隱私 color alert 可讀性強 content JSON HiJacking攻擊: JSON劫持類似於CSRF攻擊,為了了解這種攻擊方式,我們先看一下Web開發中一種常用的跨域獲取數據的方式:JSONP。 先說一下JSON吧,JSON是

json

dumps 自定義 pre 傳輸 空間 通過 自動 ear open """只是把數據類型轉成字符串到內存裏的意義json.dumps json.dump1. 把你的內存數據 通過網絡 共享給遠程其他程序(只能bytes傳輸)2. 跨平臺,跨語言 定義了不同語言之間的交互

Json解析與序列化

從頭說起: 首先的首先,什麼是Json:一種資料表示形式,JSON:JavaScript Object Notation物件表示法 Json語法規則: 資料在鍵值對中 資料由逗號分隔 花括號儲存物件 方括號儲存陣列 像這樣: { "firstName":"J

Json在java中的使用

1.一般我們在進行客戶端和服務端交換資料的時候,會使用Json來進行資料的傳輸,即轉換成字串型別的json資料來進行資料的交換。 2.Json型別的資料一般是 JSONObject(物件),JSONArray(陣列)。一般來說二組的區別在於,物件是無序的,而陣

JSON和JSONP的區別

以前經常把JSON和JSONP搞混淆,最近特意查閱了相關資料終於搞明白兩者關係了,簡單說一下。 JSON JSON是一種基於文字的資料交換格式,用於描述複雜的資料,舉個例子,描述一個學生的資訊可以這樣子寫: var student = { "i

json和jsonp

 前言   由於Sencha Touch 2這種開發模式的特性,基本決定了它原生的資料互動行為幾乎只能通過AJAX來實現。   當然了,通過呼叫強大的PhoneGap外掛然後打包,你可以實現100%的Socket通訊和本地資料庫功能,又或者通過HTML5的WebSoc

JSON解析!

          什麼是JSON?          JSON(JavaScript Object Notation) 是一種輕量級的資料交換格式。它基於ECMAScript的一個子集。 JSON採用完全獨立於語言的文字格式,但是也使用了類似於C語言家族的習慣(包括C、

json web token及應用

Json Web Token (JWT),是一個非常輕巧的規範,這個規範允許在網路應用環境間客戶端和伺服器間較安全的傳遞資訊。該token被設計為緊湊且安全的,特別適用於分散式站點的單點登入(SSO)場景。JWT一般被用來在身份提供者和服務提供者間傳遞被認證的使用者身份資訊,以便於從資源伺服器獲取資源。

JSON/JSONP

sre 字符串 json字符串 數組 var 輕量 name times 例如 一、什麽是JSON? JSON 即 JavaScript Object Notation 的縮寫,簡而言之就是JS對象的表示方法,是一種輕量級的數據交換格式。 JSON 是存

JavaScript、jQuery、AJAX、JSON 這四個之間的關系

quest sig 出現 情況 put 自己 工具庫 mis ava 1. JavaScript JavaScript(簡稱js)是一種主要運行於瀏覽器中的弱類型的動態腳本語言,可以用來實現網頁上的一些高級功能,如數據驗證處理、頁面動態效果、定時任務、與用戶交互、發送/接收

返回值型別: json與html

返回json時要注意的一些東西: 1、後臺千萬不要用StringBuilder的AppendLine()方法, 這樣會夾雜進去"\r\n", 而不能成功; 2、json是脆弱的, 如果要構建html作為其中的一個值, 而html中又有單雙引號, 那麼在後臺最好是這樣: sb

以C/C++語法二十三種設計模式(一)——工廠模式(Factory Method)

0.寫在前面 在軟體開發過程中,為了提高開發效率、增強軟體執行的穩定性,降低後期專案維護的成本,我們志在追求更加高效、簡單的設計思路來引領我們的專案產品,在經過不斷的探索與總結的過程中,我們最常用的設計模式有23中,總體分為三大類,即建立型模式、結構型模式和行為型模式,具體如下:

以C/C++語法六大設計原則(一)——依賴倒置原則(Dependence Inversion Principle)

一. 前言 眾所周知,在軟體開發過程中,我們的六大設計原則與二十三種設計模式可以說是我們開發的思想精髓。然而,網上或者書本大多數的資料都是以java、python等其他語言語法進行介紹與闡述,很少有以C/C++的語法進行深入介紹。鑑於此,本人以淺薄的見識對這些精妙的思想做以總結,方便

JSON和基本介紹

一: 什麼是JSON?          JSON(JavaScript Object Notation) 是一種輕量級的資料交換格局。它基於ECMAScript的一個子集。 JSON選用完全獨立於言語的文字格局,但是也使用了類似於

Java如何將字串轉成Json物件以及從Json物件中獲得相應的值

前序:在做專案的過程中有次需要將json格式的字元拼接起來作為HTTP請求的一部分,且伺服器響應資訊即收到的返回資訊也是json格式的字串,在做這個專案中請求資訊我是使用字串拼接的,長長的json格式字串讓我拼接了半天,中途出現了幾次錯誤,白白耗費了時間。解析響應的json格

jsoncpp及實現伺服器客戶端之間json包傳輸

JSON是什麼? JSON 是一種用於資料交換的文字格式(本質是一種檔案組織方式,比如你熟悉的txt, csv, doc,docx檔案等等),目的是取代繁瑣笨重的XML格式。這種格式不僅人很容易進行閱讀和編寫,同時機器也很容易解析和生成,是當前十分流行的資料格式,尤其是在前

計算機領域及職業憧憬

計算機科學 軟件工程師 計算機行業 雖然自己的專業是計算機,可是慚愧的說其實對這個行業的了解並不是很多,大多時候是通過網絡或者新聞才了解到的。據我所知,現在計算機行業是非常流行的行業,當然競爭也是十分激烈,信息化的時代我們的生活都離不開與計算機有關的東西,比如上學坐公共汽車,需要刷卡,這就是

Java學習筆記——數據結構與Java集合框架(第一篇、List)

技術分享 emp 鏈表 adc 下標 -c nod nal integer 橫看成嶺側成峰,遠近高低各不同。不識廬山真面目,只緣身在此山中。               ——蘇軾 這一塊兒學的是雲裏霧裏,咱們先從簡單的入手。逐漸的撥開迷霧見太陽。本次先做List集合的三