一,数组

1. 定义一维数组:var s1=new Array();

s1=[1,2,3,4]或者s1[0]=1,s1[1]=2,s1[3]=3,s1[4]=4;

alert(s1[0]);

结果为1;

2,,定义二维素组:var s1=new Array();
                               var s1=[[3,1],[2,3,4],3,[4,5,6,7,8]];
                                 alert(s1[1][0]);
                               结果为2;

二,定义json对象

1,json对象

var status_process = {
             " name5" : '闲置期',
          "name1" : '播种期',
          "name2" : '苗期',
          "name3" : '生长期',
         "name4" : '采收期'
       }

alert(status_process);

结果为:Object:Object;

2,json字符串

所谓json字符串,是指该字符串变量的值与json的格式相同,但是不是json对象,比如:

var s1="{";
              var s2 = " 'name5' : '闲置期',   'name1' : '播种期','name2' : '苗期','name3' : '生长期','name4' : '采收期'";
              var s3="}";
              var  status_process=s1+s2 +s3;

虽然status_process的值符合json对象的格式,但是它不是对象,只是一个字符串(是拼凑出来的);

将字符串转换为json对象使用函数eval,eval("(" + status_process+ ")");

结论:从后台传入到前台的是json字符串,不是真正的json对象,因此需要使用eval函数转换。

3,json对象的使用

var status_process = {
            name5 : '闲置期',
          name1 : '播种期',
          name2 : '苗期',
           name3 : '生长期',
           name4 : '采收期'
          };
         alert(status_process["name5"]);
         alert(status_process.name5);

两个都为:闲置期

4,json二维对象

var status_process = {
 name5 : {name3:'空闲闲置期'},
 name1 : '播种期',
 name2 : '苗期',
 name3 : '生长期',
 name4 : '采收期'
};
alert(status_process["name5"]["name3"]);
alert(status_process.name5.name3);

结果都为:'空闲闲置期'

另一篇转文: http://asyty.iteye.com/blog/1260933

关于JSON(JavaScript Object Natation),简单的说就是轻量级的用于交换数据的格式,基于javascript 语法的子集,即数组和对象表示。

Javascrip数据类型,对象与数组:

javascript 的数据结构主要有以下四种基本数据类型,string,number,boolean,null,js还有复杂的数据结构,即对象。我们可以把数组看成一种特殊的对象。对象和数组里都可以包含不同的类型,包括对象和数组。

js对象的定义如下:

var boy= {
"name": "xiaoming",
"age" : 4,
"city" : "杭州"
"hasBrother":true
};

对象可以看成是容器,里面装了许多的key-value对,类似于java里Map<String,Object>。我们可以这样获取值

alert("name = " + boy["name"] );

alert("age=" + boy.age);

而数组可以和对象最大的不同是,数组是有序的,不是采用key的方式获取值,而是通过index来索引,相对对象来说还多了length属性。

var array=["hello", 12, true , null];
alert(array[0]);

当然 对象和数组是可以混用的,如下简单地混合,当然可以更复杂。

var array=["hello", 12, true , {"name": "xiaoming",  "age" : 4}];

var boy= {"name":"xiaoming", "brothers":["xiaohuang","xiaohong"]};

需要注意的是,平时我们可以通过这样定义

var a = [1,2,3]; //定义一个数组
alert(a.length); //结果为3 a["name"] = "xiaoming"; //我们再给它赋值
alert(a.length); //结果还是为3 a.push(4);
alert(a.length); //结果为4

上面的代码a["name"]="xiaoming"是给a数组增加了一个属性叫name,而不是在数组里添加数据。

其实可以把数组想象成这种格式,即特殊的对象(type这个属性是随便写的,)

var array= {
"type":"array",
"value":[1,2,3],
"length":3
};
加上 a["name"] = "xiaoming"; 之后,array的变成这样,并不影响数组本身的值。
array= {
"type":"array",
"name":"xiaoming",
"value":[1,2,3],
"length":3
};

涵盖了javascript公有成员定义、私有成员定义、特权方法定义的简单示例

<script>
//定义一个javascript类
function JsClass(privateParam/* */,publicParam){//构造函数
var priMember = privateParam; //私有变量
this.pubMember = publicParam; //公共变量
//定义私有方法
function priMethod(){
return "priMethod()";
}
//定义特权方法
//特权方法可以访问所有成员
this.privilegedMethod = function(){
var str = "这是特权方法,我调用了\n";
str += " 私有变量:" + priMember +"\n";
str += " 私有方法:" + priMethod() +"\n";
str += " 公共变量:" + this.pubMember +"\n";
str += " 公共方法:" + this.pubMethod(); return str;
}
}
//添加公共方法
//不能调用私有变量和方法
JsClass.prototype.pubMethod = function(){
return "pubMethod()";
} //使用 JsClass的实例
JsObject = new JsClass("priMember","pubMember"); //alert(JsObject.pubMember);//弹出pubMember信息
//alert(JsObject.priMember);//弹出undefined信息
//alert(JsObject.pubMethod());//弹出pubMethod信息
//alert(JsObject.priMethod());//弹出"对象不支持此属性或方法"的错误
alert(JsObject.privilegedMethod());
</script>

js数组与 json 的区别的更多相关文章

  1. js数组,字符串,json互相转换函数有哪些

    js数组,字符串,json互相转换函数有哪些 一.总结 一句话总结: JSON.stringify(arr) JSON.parse(jsonString) str.split('') array.jo ...

  2. 理清JS数组、json、js对象的区别与联系

    最近在敲代码时,遇上了一个关于JS数组的问题,由此引发了关于对象和json的联想,曾经觉得很畅顺的知识点突然模糊了.于是,为了理清这些东西,有了如下这篇文章.觉得没问题的猿们可以当复习,而那些带着疑问 ...

  3. C#数组、js数组、json

    C#数组 参考地址C#之数组 什么是数组?数组是一种数据结构,包含同一个类型的多个元素.数组的声明:int[] myIntArray; 注:声明数组时,方括号 [] 必须跟在类型后面,而不是变量名后面 ...

  4. javascript数组&省市联动分别用js数组和JSON实现

    1.定义数组的三种方式: **数组可以存放不同的数据类型   第一种: var arr=[1,2,3];   var arr=[1,"2",true];   第二种: 使用内置对象 ...

  5. 浅谈6种JS数组遍历方法的区别

    本篇文章给大家介绍一下6种JS数组遍历方法:for.foreach.for in.for of.. each. ().each的区别.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. ...

  6. js 数组转json,json转数组

    //数组转json串var arr = [1,2,3, { a : 1 } ];JSON.stringify( arr ); //json字符串转数组var jsonStr = '[1,2,3,{&q ...

  7. js数组和对象的区别,ajax传入多个参数值,ajax传多个数组数据

    数组分为索引数组和关联数组 js中先声明一个空数组 arr = [] 索引数组 索引是整数,如arr[0] = 'a' 关联数组 索引是自定义的字符串,如arr['a'] = 'a' js中的对象 你 ...

  8. js数组使用JSON.stringify()和toString()的区别,JSON.parse

    JSON.stringify()中的<br><br>var arr = [1,2,3,4]; console.log(arr.toString()); // 1,2,3,4 a ...

  9. 在JavaScript中使用json.js:使得js数组转为JSON编码

    在json的官网中下载json.js,然后在script中引入,以使用json.js提供的两个关键方法. 1.数组对象.toJSONString() 这个方法将返回一个JSON编码格式的字符串,用来表 ...

随机推荐

  1. 关于 IN UPDATE TASK

    [转 http://blog.sina.com.cn/s/blog_6f74e6d50100sq57.html]更新程序必须用一个特殊的FM(update module)来实现. 1.Exportin ...

  2. [Java面试一]Spring总结以及在面试中的一些问题.(转发:http://www.cnblogs.com/wang-meng/p/5701982.html)

    1.谈谈你对spring IOC和DI的理解,它们有什么区别? IoC Inverse of Control 反转控制的概念,就是将原本在程序中手动创建UserService对象的控制权,交由Spri ...

  3. (转)AAC ADTS格式分析

    1,ADTS是个啥ADTS全称是(Audio Data Transport Stream),是AAC的一种十分常见的传输格式记得第一做demux的时候,把AAC音频的ES流从FLV封装格式中抽出来送给 ...

  4. C# ADO.NET学习

    Connetction 对象: 数据库服务器 数据库名字 登录名.密码 连接数据库所需要的其他参数 Command对象: ExecuteScalar();//首行首列的内容 ExecuteNomQue ...

  5. 牛客小白月赛1 A 简单题 【数学】

    题目链接 https://www.nowcoder.com/acm/contest/85/A 思路 这个 就是 E 但是 运算的时候 要保证 其精度 AC代码 #include <cstdio& ...

  6. Python OOP(3) staticmethod和classmethod统计实例

    staticmethod 统计实例 #!python2 #-*- coding:utf-8 -*- class c1: amount_instance=0 def __init__(self): c1 ...

  7. P3506 [POI2010]MOT-Monotonicity 2

    题目 P3506 [POI2010]MOT-Monotonicity 2 第一次切掉没题解的题\(qwq\) 做法 首先确定\(a_i\)的位置后显然就能确定\(a_{i+1}\)的位置,建一棵权值线 ...

  8. import与import static

    import ......className (静态导入) 功能: 导入一个类 import static ......className.* 功能:导入这个类里的静态方法,是JDK1.5中的新特性, ...

  9. EntityFramework 学习 一 Add Entity Graph using DbContext:

    //Create student in disconnected mode Student newStudent = new Student() { StudentName = "New S ...

  10. C++难点的一些总结

    一. C++成员函数的重载 C++中的成员函数有四种,分别是普通成员函数,virtual虚函数,const成员函数. (1) void func(int a); (2) virtual void fu ...