What is the difference between a JSON object and a Javascript object
This article mainly explains "what is the difference between JSON objects and Javascript objects". Interested friends may wish to take a look. The method introduced in this paper is simple, fast and practical. Let's let Xiaobian take you to learn "What is the difference between JSON objects and Javascript objects"!
1、JSON对象任务描述
本关任务:练习在JavaScript中定义JSON对象。
具体要求如下:
定义一个JSON对象JSONObject,它有三个属性:key1、key2和key3,它们的值分别是参数a、b和c;
删除其中名字为key3的属性;
删除完成后,遍历其余的所有属性,返回各属性的值连接成的字符串,中间用,隔开
JSON既然是用来传递数据的,必然要先存储数据,存储数据需要采用一定的数据格式,JSON常用的数据格式有JSON对象、JSON数组和JSON字符串。
什么是JSON对象
JSON对象(通常叫JSON)是一种文本数据的交换格式,用于存储和传输数据。示例如下:
{"name":"Jerry", "age":15}
这就是一个简单的json对象,它的规则是:
数据以键/值对的形式存在;
数据之间用逗号间隔;
大括号表示保存对象;
方括号表示保存数组。
JSON对象与Javascript对象的区别
JSON是基于JavaScript语法的,所以JSON中也有对象的概念,但是和JavaScript中的对象有一些小的区别。
定义一个JavaScript对象:
var myObject = { id:1, name:"Peter Bruce", "first name":"Bruce", display:function() { console.log(this.name); }}
定义一个JSON对象:
{"id":1,"name":"Peter Bruce","first name":"Bruce"}
三点区别:
(1)JSON对象的属性名(key)必须被包含在双引号之中,而JavaScript对象除了有空格的属性名、中间有连字符-的属性名必须在双引号之中外,其它随意;
(2)不能在JSON对象中定义方法,而在JavaScript对象中可以;
(3)JSON对象可以被很多语言操作,而JavaScript对象只有JS自己可以识别。
定义JSON对象的方法如下
用一个{}包含在内,内部是若干个属性名和属性值构成的键值对,键值对之间用,隔开,属性名和属性值之间用:隔开,属性值可以是以下任意一种数据类型的数据:数字、字符串、JSON数组、JSON对象、null。如:
{"a":1,"b":2.12,"c":true,"d":"string","e":null};
属性值是JSON数组或者JSON对象的情况稍复杂,后面的关卡将介绍。
在JavaScript中使用JSON对象
支持JSON的语言都能够使用JSON对象,这里仅介绍在JavaScript中如何使用JSON对象。
在JavaScript中定义一个JSON对象:
var jsonObject = {"name":"js","number":2};
操作属性,使用.或者[]:
console.log(jsonObject.name);//读属性,输出jsconsole.log(jsonObject["name"]);//读属性,输出jsjsonObject.name = "javascript";//写属性,给name属性赋值javascript
删除属性,使用delete:
var jsonObject = {"name":"js","number":2};delete jsonObject.name;//删除name属性
遍历属性,使用for-in循环:
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 **********/}2、JSON数组任务描述
本关任务:定义并操作JSON键值对中的值。
具体要求如下:
已知myJson的第三个属性的值是一个数组,参数a是一个数字,要求将数组中前a个元素(这些元素都是字符串类型)拼接起来,元素之间用,隔开,返回拼接后的字符串;
比如a为2的时候,你需要返回js,java。
JSON属性对应的值(value)是一个数组
JSON键值对中的值(value)可以是一个数组
比如:
{"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;i