关于JS解析编历JSON数组(含多维数组)
第一部分:

alert(list1[]);
var list2 = [{"name":"leamiko","xing":"lin"}];
alert(list2[]["xing"])
alert(list2[].xing)

第二部分:
1 var value = {
2 "china":{
3 "hangzhou":{"item":""},
4 "shanghai":{"item":""},
5 "chengdu":{"item":""}
6 },
7 "America":{
8 "aa":{"item":""},
9 "bb":{"item":""}
},
"Spain":{
"dd":{"item":""},
"ee":{"item":""},
"ff":{"item":""}
}
};
for(var countryObj in value)
{
document.write(countryObj + ":<br />")
//没用的for(var cityObj in value.countryObj)
for(var cityObj in value[countryObj])
{
document.write(' ' + cityObj + "<br />");
for(var itemObj in value[countryObj][cityObj])
{
document.write(" "+ itemObj + value[countryObj][cityObj][itemObj] +"<br />")
}
}
}
countryObj 为value对象的一个属性明
value[countryObj] 为value对象的属性值 这里为一个json对象比如b
value[countryObj][cityObj]为josn对象b的属性值 它也是一个json对象
于是 value[countryObj][cityObj]["item"]便可以取到json对象暂时成为c的值
或者 value[countryObj][cityObj].item
总之分清是json还是array这是很关键的
第三部分:
1 var value2 = {
2 "china":[
3 {"name":"hangzhou", "item":""},
4 {"name":"shanghai", "item":""},
5 {"name":"sichuan", "item":""}
6 ],
7 "America":[
8 {"name":"aa", "item":""},
9 {"name":"bb", "item":""}
],
"Spain":[
{"name":"cc", "item":""},
{"name":"dd", "item":""},
{"name":"ee", "item":""}
]
};
for (var countryObj in value2)
{
document.write(countryObj + ":<br />")
for (var cityObj in value2[countryObj])
{
//可以用document.write(" " + value2[countryObj][cityObj].item + "<br />");
document.write(cityObj + " " + value2[countryObj][cityObj]["name"] + "<br />" );
}
}
countryObj 为value2对象的属性名
value2[countryObj] 为value2对象属性值 在本例中它是一个数组
cityObj 是数组的一个元素,它又是另外一个json对象
于是,value2[countryObj][cityObj]["name"]就访问到该对象的 name的属性值
也可以通过 value2[countryObj][cityObj].name 来访问该属性值
第四部分:
1 var value2 = {
2 "china":[
3 {"name":"hangzhou", "item":""},
4 {"name":"shanghai", "item":""},
5 {"name":"sichuan", "item":""}
6 ],
7 "America":[
8 {"name":"aa", "item":""},
9 {"name":"bb", "item":""}
],
"Spain":[
{"name":"cc", "item":""},
{"name":"dd", "item":""},
{"name":"ee", "item":""}
]
};
for (var countryObj in value2)
{
document.write(countryObj + ":<br />")
//document.write(" " + value2[countryObj].length);
for (var i = ;i < value2[countryObj].length; i++)
{
document.write(" " + value2[countryObj][i]["name"] + "<br />");
}
}
countryObj value2对象的属性名
value2[countryObj] 属性值 本例中是一个数组
value2[countryObj].length 数组的长度.
value2[countryObj][i]数组的项 == json对象
value2[countryObj][i]["name"] 取得name的值
也可以用value2[countryObj][i].name 来取得name的值
关于JS解析编历JSON数组(含多维数组)的更多相关文章
- JS中:数组和二维数组、MAP、Set和枚举的使用
1.数组和二维数组: 方法一: var names = ['Michael', 'Bob', 'Tracy']; names[0];// 'Michael' 方法二: var mycars=new ...
- JS一维数组、多维数组和对象的混合使用
转载地址:http://blog.csdn.net/wangyuchun_799/article/details/38460515 引言 这篇文章的主要目的是讲解JavaScript数组和对象的混合使 ...
- js一维数组转换为二维数组
function arrTrans(num, arr) { // 一维数组转换为二维数组 const iconsArr = []; // 声明数组 arr.forEach((item, index) ...
- 【Java学习笔记之八】java二维数组及其多维数组的内存应用拓展延伸
多维数组声明 数据类型[][] 数组名称; 数据类型[] 数组名称[]; 数据类型数组名称[][]; 以上三种语法在声明二维数组时的功能是等价的.同理,声明三维数组时需要三对中括号,中括号的位置可以在 ...
- Java数组之二维数组
Java中除了一维数组外,还有二维数组,三维数组等多维数组.本文以介绍二维数组来了解多维数组. 1.二维数组的基础 二维数组的定义:二维数组就是数组的数组,数组里的元素也是数组. 二维数组表示行列二维 ...
- 【Java学习笔记之九】java二维数组及其多维数组的内存应用拓展延伸
多维数组声明 数据类型[][] 数组名称; 数据类型[] 数组名称[]; 数据类型数组名称[][]; 以上三种语法在声明二维数组时的功能是等价的.同理,声明三维数组时需要三对中括号,中括号的位置可以在 ...
- C#的一维数组和二维数组定义方式:
一维数组: //一维数组定义与初始化 ,, };//第一种方式 , , }; //第二种方式 int[] one3; //第三种方式 one3=,,}; 二维数组: //二维数组定义与初始化 //不规 ...
- C#中的数组,多维数组和交错数组
想研究一些面向对象的东西,也许是代码写得还不够多.感觉还不好,看那些教程,不是嫌太水就是太难看不懂.心情很是落寞 不过再怎样也要坚持每天发一篇博客. 这篇来说一下C#中的数组,多维数组,交错数组的一些 ...
- js-二维数组和多维数组
一.二维数组的表示 myarray[][] 二.二维数组的定义 方法一: var a = new Array(); for(var i=0;i<3;i++){ //一维长度为3 a[i] = n ...
随机推荐
- SQL Server跨server之间訪问
在两个server都须要启用Ad Hoc Distributed Queries: EXEC sp_configure 'show advanced options', 1 RECONFIGURE E ...
- node.js中的事件循环机制
http://www.cnblogs.com/dolphinX/p/3475090.html
- Laravel5.1 分页展示
Laravel为我们提供了一套分页的逻辑,我们无需自己实现分页逻辑,只需要执行几个简单的方法就能实现漂亮的分页. 1 simplePaginate 这是一种只显示上一页下一页的样式分页,我们来看看怎么 ...
- AOSP5.0换8G eMMC不能开机问题
AOSP5.0 MT6572平台.用H9TP32A4GDBCPR_KGM这颗4G的eMMC就能够.可是用H9TP65A8JDACPR_KGM这个8G的就开不了机,一直是重新启动.用串口抓LOG发现以下 ...
- IOS开发之 -- 线程初识
对于开发者来说,多线程永远有这一层神秘的色彩,似乎是一到迈步过去的坎,在同步.异步.串行.并行.死锁这几个名字当中,逐渐的放弃治疗,下面就多线程,谈一下自己的认识,理解的肯定不全面,只是一些简单的皮毛 ...
- linux用户与组管理命令的基本操作
用户账号管理命令 为了提高系统的利用率,避免因多个用户共用一个root账号而造成不必要要的系统安全隐患,通常需要为 新用户添加账户.在Linux系统中,添加用户只能由超级用户来完成,也就是说,只能由r ...
- 隐藏内容但仍保持占位的css写法
通常显示和隐藏内容都会用display:block;和display:none; 如果想要保持内容的占位可以用visbility:visible; 和visiblity:hidden;来控制内容的显示 ...
- 170220、maven国内镜像 阿里云
maven确实是一个好东西,但是在国内下载官方仓库的jar却是个大问题,速度不敢恭维,现在oschina的国内maven镜像服务已关闭,无奈之下只能另寻门路. 今天突然发现了阿里云maven国内镜像, ...
- 160728、Spark Streaming kafka 实现数据零丢失的几种方式
定义 问题开始之前先解释下流处理中的一些概念: At most once - 每条数据最多被处理一次(0次或1次) At least once - 每条数据最少被处理一次 (1次或更多) Exactl ...
- Java 之 GUI 编程
GUI (Graphical User Interface, 图形用户接口) CLI (Command line User Interface, 命令行用户接口) Java 为 GUI 提供的对象都存 ...