核心:这种垃圾不用我说了把,兄弟们,看过前面自然会!!!
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>1.3-JSON 对象-访问对象值</title> </head> <body> <h2>你可以使用点号(.)来访问 JSON 对象的值:</h2> <div> 姓:<span id="x01"></span><br> 名:<span id="m01"></span><br> 名:<span id="d01"></span> </div> <hr> <div id="demo"></div> <script type="text/javascript"> var ren={"xing":"黄","ming":"菊华","dizhi":"浙江杭州"}; document.getElementById("x01").innerHTML=ren.xing; document.getElementById("m01").innerHTML=ren.ming; document.getElementById("d01").innerHTML=ren.dizhi; for(y in ren) { document.getElementById("demo").innerHTML=document.getElementById("demo").innerHTML +ren[y]+" "; } </script> </body> </html>
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>1.4-JSON 数组02-对象中的数组</title> </head> <body> <h2>JSON 数组02-对象中的数组</h2> <div id="demo01"></div> <script type="text/javascript"> var myobj; myobj={ "xm":"黄菊华", "num":3, "ke":["html","css","js"] } myobj.ke[0] ="Html教程"; document.getElementById("demo01").innerHTML =myobj.ke[0]; //核心;这种和之前一样把,只不过把{}变成了[],一样的啊老哥,我就不讲了,因为看过之前自然懂!! </script> </body> </html>
核心:
myobj={ "xm":"黄菊华", "num":3, "ke":["html","css","js"] }
这种垃圾就不用我讲了把,
你在这句话的后面加console.log(myobj);就知道了
分析:这外面括的是一个对象是吧,所以里面是不是属性,有一个属性是不是一个数组,这不就行了吗?
记住了哈,对象里面的属性可以是数组哈,那问题来了?
怎么表示呢?
记住了兄弟们,如果是对象嵌套对象,可以用就比如下面这样子的
对象方式:可以ren2.kcheng.ke01;为什么,这样子,因为这是对象嵌套对象啊,不就是属性.属性.属性吗?
数组方式是:ren2.kcheng[“ke01“];哈,为什么这样子,因为ren2实例对象里面是不是有一个属性,属性里面是不是一个数组
记住了,属性里面的属性值也可以是数组哈
对象嵌套对象就两种方式都可以!!
myobj={ "xm":"黄菊华", "num":3, "ke":["html","css","js"] }
只能这样子console.log(myobj.ke[0]);,为什么只能这样子,兄弟们。 问题来了?能不能在ke里面用下标为字符串代表下标为数字呢? 答案是不能、?为什么不能?
myobj={ "xm":"黄菊华", "num":3, "ke":["q":"html","w":"css","e":"js"] } alert(myobj.ke["q"]);
显示的是语法错误,所以。。。。哈哈哈
=========================== 对象嵌套数组方式:
myobj={ "xm":"黄菊华", "num":3, "ke":["html","css","js"] }
只能用对象.属性[下标进行哈,下标且是数字]
var i,x="";
为什么先为空? 因为如果写成var i,x;的话,会出现乱码的啊,因为变量不是默认为0的哈,所以如果为其他数字的话,会出现乱码的哈
for(i in myobj.ke) { x = x + i + " | " + myobj.ke[i] + " " } document.getElementById("demo02").innerHTML = x;
意思是i为下标,myobj.ke是对象.属性 记住了哈。json对象里面都是字符串哈,等三次完之后就输出了哈,核心:累加
var j,y = ""; for(j=0;j<myobj.ke.length;j++) { y = y + myobj.ke[j] + " " } document.getElementById("demo03").innerHTML = y;
这就不会有下标了呀,为什么,因为下标都myobj.ke.length了呀,所有输出的是值哈哈哈哈 好了,兄弟们拜拜。
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> </head> <body> <h2>对象中的数组-两种循环显示方式</h2> <div id="demo01"></div><hr> <div id="demo02"></div><hr> <div id="demo03"></div> <script type="text/javascript"> var myobj; myobj={ "xm":"黄菊华", "num":3, "ke":["html","css","js"] } //myobj.ke[0] ="Html教程"; document.getElementById("demo01").innerHTML =myobj.ke[0]; var i,x=""; for(i in myobj.ke) { x = x + i + " | " + myobj.ke[i] + " " } document.getElementById("demo02").innerHTML = x; var j,y = ""; for(j=0;j<myobj.ke.length;j++) { y = y + myobj.ke[j] + " " } document.getElementById("demo03").innerHTML = y; </script> </body> </html>