如何快速入門VUE3.0:進入學習
相關推薦:javascript教學
本關任務:練習在JavaScript中定義JSON物件。
具體要求如下:
定義一個JSON物件JSONObject,它有三個屬性:key1、key2和key3,它們的值分別是參數a、b和c;
刪除其中名字為key3的屬性;
刪除完成後,遍歷其餘的所有屬性,返回各屬性的值連接成的字串,中間用,隔開
JSON既然是用來傳遞數據的,必然要先存儲數據,存儲數據需要採用一定的數據格式, JSON常用的數據格式有JSON對象、 JSON數組和JSON字串。
JSON物件(通常叫JSON)是一種文本数据
的交換格式,用來儲存和傳輸資料。範例如下:
{"name":"Jerry", "age":15}
這就是一個簡單的json對象,它的規則是:
键/值对
的形式存在;JSON是基於JavaScript語法的,所以JSON中也有物件的概念,但是和JavaScript中的物件有一些小的差別。
var myObject = { id:1, name:"Peter Bruce", "first name":"Bruce", display:function() { console.log(this.name); }}
{"id":1,"name":"Peter Bruce","first name":"Bruce"}
(1) JSON
物件的屬性名稱(key)必須被包含在雙引號之中,而JavaScript物件除了有空格的屬性名稱、中間有連字符-的屬性名稱必須在雙引號之中外,其它隨意;
(2)不能在JSON物件中定義方法,而在JavaScript对象
中可以;
(3) JSON物件可以被很多語言操作,而JavaScript物件只有JS自己可以辨識。
用一個{}
包含在內,內部是若干個屬性名和屬性值構成的鍵值對,鍵值對之間用,隔開,屬性名和屬性值之間用:
隔開,屬性值可以是以下任一種資料型態的資料:數字、字串、JSON陣列、JSON物件、null。如:
{"a":1,"b":2.12,"c":true,"d":"string","e":null};
屬性值是JSON數組或JSON物件的情況稍複雜,後面的關卡將介紹。
支援JSON的語言都能夠使用JSON對象,這裡僅介紹在JavaScript中如何使用JSON物件。
var jsonObject = {"name":"js","number":2};
.
或[]
:console.log(jsonObject.name); //讀取屬性,輸出jsconsole.log(jsonObject["name"]); //讀取屬性,輸出jsjsonObject.name = "javascript"; //寫入屬性,將name屬性賦值javascript
var jsonObject = {"name":"js","number":2}; delete jsonObject.name; //刪除name屬性
var jsonObject = {"name":"js","number":2};for(att in jsonObject) { console.log(jsonObject[att]); //依序輸出js、2}
function mainJs(a,b,c) { //請在此處編寫程式碼 /********** Begin **********/ var JSONObject = {"key1":a,"key2":b,"key3":c}; delete JSONObject.key3; return a+","+b; /********** End **********/}
本關任務:定義並操作JSON鍵值對中的值。
具體要求如下:
例如:
{"country":"China","population":"1.3billion","bigCity":[ "Peking","Shanghai","ShenZhen","HongKong"]}
屬性bigCity的值有多個,放在一個陣列裡面。
上面例子裡面,陣列的每一個元素都是字串。其實,數組的每一個元素還可以是另一個json物件。如:
{"class":"高三一班","studentNumber":70,"score":[ {"name":"LiMing","score":128}, {"name":"ZhangHua","score":134}, {"name":"ShenLu","score":112}]}
上面的score屬性的值就是一個陣列,這個陣列的每一個元素是一個json物件。
var myJson = {"country":"China","population":"1.3billion","bigCity":["Peking","Shanghai","ShenZhen","HongKong"] }console.log(myJson.bigCity[1]); //印出ShanghaimyJson.bigCity[0] = "GuangZhou"; //第一個元素被賦值為GuangZhou
var myJson = {"country":"China","population":"1.3billion","bigCity":["Peking","Shanghai","ShenZhen", "HongKong"]}for(var i = 0;i < myJson.bigCity.length;i++) { console.log(myJson.bigCity[i]);//依序輸出Peking,Shanghai,ShenZhen,HongKong}
【第一種方法是後來寫的,剛開始用的是下面的第二種辦法,因為當時做不出來,就想著直接輸出】
var myJson = { "category":"computer", "detail":"programming", "language":[ "js","java","php","python","c" ]}function mainJs(a) { a = parseInt(a); //請在此處編寫程式碼 /********** Begin **********/ var b = ""; for(var i=0;ivar myJson = { "category":"computer", "detail":"programming", "language":[ "js","java","php","python","c" ]}function mainJs(a) { a = parseInt(a); //請在此處編寫程式碼 /********** Begin **********/ if(a==1){ return myJson.language[0]; } if(a==2){ return myJson.language[0]+","+myJson.language[1]; } if(a==3){ return myJson.language[0]+","+myJson.language[1]+","+myJson.language[2]; } if(a==4){ return myJson.language[0]+","+myJson.language[1]+","+myJson.language[2]+","+myJson.language[3]; } if(a==5){ return myJson.language[0]+","+myJson.language[1]+","+myJson.language[2]+","+myJson.language[3]+","+myJson.language[4 ]; } /********** End **********/}3、JSON字串
任務描述
本關任務:練習JSON字串和JavaScript物件的相互轉換。
具體要求如下:
- 先將JSON字串JSONString轉換為JavaScript物件JSONObject;
- 然後將JSONObject的key1屬性的值設定為mainJs()函數的參數a;
- 最後將JSONObject轉換為JSON字串,並傳回該字串
在前端和後台之間傳遞資料可以使用JSON,但實際上傳遞的是JSON字串,而JSON物件是不可以直接進行傳遞的。
JSON字串
JSON字串就是在JSON物件兩邊套上
'
形成的字串,如:var JSONObject = {"k1":"v1","k2":"v2"}; //JSON物件var JSONString1 = '{"k1":"v1","k2":"v2"}'; //JSON字串上面的JSONSring1就是JSON字串,可以直接從前端傳到後台或後台傳到前端。
當JavaScript收到從後台傳來的JSON字串後,要怎麼把它變成JSON物件方便處理呢?
JSON字串到JavaScript物件
JSON.parse(a,b)
方法將JSON字串a轉換為JavaScript物件。 b是一個可選的函數參數。var JSONString1 = '{"k1":"v1","k2":"v2"}';console.log(JSON.parse(JSONString1)); //輸出Object {k1: "v1", k2: "v2"}函數參數b以
从里到外
的順序作用在物件的所有屬性上,最後一個作用的是物件本身://物件的每一個屬性的值加1var text = '{ "key1":1, "key2":2, "key3":2.2}';var obj = JSON.parse(text, function (key, value) { if(key === '')//當遇到物件本身時,不進行加1操作return value; return value+1;//對屬性值加1});console.log(obj); //輸出Object {key1: 2, key2: 3, key3: 3.2}如上面所示,函數的參數有兩個,其中key表示屬性的名字,value表示屬性的值,當遇到物件本身時,key的值為
''
,即空字串。JSON物件轉換為JSON字串
JSON.stringify(a,b,c)
, a是待轉換的JSON對象,b和c為可選參數。var JSONObject = {"k1":"v1","k2":"v2"}; JSON.stringify(JSONObject); //JSON物件轉換為JSON字串參數b為函數時,函數依照從裡到外的順序處理JSON物件的每一個屬性,最後一個處理的是JSON物件本身,處理完後再轉為JSON字串:
//物件的所有屬性值加1,再轉為字串var JSONObject = {"k1":1,"k2":2.2};var JSONString = JSON.stringify(JSONObject,function(k,v){ if(k === '')//處理到了JSON物件本身return v; return v+1;//所有的屬性的值加1});console.log(JSONString); //輸出{"k1":2,"k2":3.2}參數b還可以是數組,數組儲存的是屬性的名字,用來指定只轉換哪些屬性:
//轉換物件中特定的屬性var JSONObject = {"k1":1,"k2":2.2,"k3":3};var JSONString = JSON.stringify(JSONObject,["k1","k2"]);console.log(JSONString); //輸出{"k1":1,"k2":2.2}這裡簡單介紹一下c:
var str = ["name":"Tom","age":16];var obj1 = JSON.stringify(str) ; var obj2 = JSON.stringify(str,null,4);console.log(obj1); //輸出{"name":"Tom","age":16}console.log(obj2); //輸出//{ // "name": "Tom", // "age": 16 //}參數c:文字新增縮排、空格和換行符,如果c 是一個數字,則傳回值文字在每個層級縮排指定數目的空格,如果c 大於10,則文字縮排10 個空格。
程式碼檔案
var JSONString = '{"key1":"value1","key2":"value2"}';function mainJs(a) { //請在此處編寫程式碼 /********** Begin **********/ var JSONObject = JSON.parse(JSONString); JSONObject["key1"] = a; JSONObject.key1 = a; return JSON.stringify(JSONObject); /********** End **********/}相關推薦:javascript學習教學
以上就是JavaScript學習理解之JSON(總結分享)的詳細內容,更多請關注php中文網其它相關文章!