一、JSONObject和JSONArray的数据表示形式

JSONObject的数据是用 {  } 来表示的,

例如:   { "id" : "123", "courseID" : "huangt-test", "title" : "提交作业", "content" : null  }

而JSONArray,顾名思义是由JSONObject构成的数组,用  [ { } , { } , ......  , { } ]  来表示

例如:   [ {  "id" : "123", "courseID" : "huangt-test", "title" : "提交作业" }  ,  {  "content" : null, "beginTime" : 1398873600000  "endTime" } ] ;

表示了包含2个JSONObject的JSONArray。

可以看到一个很明显的区别,一个最外面用的是 {  }  ,一个最外面用的是 [  ]  ;

JavaScript解析JSON

**
解析json数组即对JSONArray的遍历

一、对于标准的json数组如:

var result=[{"flag":1,"macId":"2","mbId":0,"userName":"XXX"},{"flag":1,"macId":"1","mbId":1,"userName":"YYY"}];
 

进行遍历的时候,可以直接通过for循环遍历这个数组,有两种方法

1.  
for (var i = 0; i < result.length; i++) {
//result[i]表示获得第i个json对象即JSONObject
//result[i]通过.字段名称即可获得指定字段的值
result[i].userName;
}
2.
for(var i in result){
//表示遍历数组,而i表示的是数组的下标值,
//result[i]表示获得第i个json对象即JSONObject
//result[i]通过.字段名称即可获得指定字段的值
result[i].userName;
}

二、对于不标准的json数组如:

var result={"datas":[{"flag":1,"macId":"2","mbId":0,"userName":"XXX"},{"flag":1,"macId":"1","mbId":1,"userName":"YYY"}]};

进行遍历之前得先解析出标准的json数组格式即[{},{}]

var data= result.datas;
1.
 for (var i = 0; i < data.length; i++) {
//data[i]表示获得第i个json对象即JSONObject
//data[i]通过.字段名称即可获得指定字段的值
data[i].userName;
}
2.
 for(var i in data){
//表示遍历数组,而i表示的是数组的下标值,
//data[i]表示获得第i个json对象即JSONObject
//data[i]通过.字段名称即可获得指定字段的值
data[i].userName;
}

**

注意点:eval()方法的作用

**
在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式:
1. 一种为使用eval()函数。
2. 使用Function对象来进行返回解析

jsonArray与 jsonObject区别与js取值的更多相关文章

  1. Thymeleaf前后端传值 页面取值与js取值

    参考: Thymeleaf前后端传值 页面取值与js取值 Thymeleaf 与 Javascript Thymeleaf教程 (十二) 标签内,js中使用表达式 目的: 后端通过Model传值到前端 ...

  2. Kindeditor JS 取值问题以及上传图片后回调等

    KindEditor.ready(function (K) { var editor = K.create('#editor_id', { //上传管理 uploadJson: '/js/kinded ...

  3. 关于前台jsp页面的js取值问题

    在后程序中传一个字符串到前台页面上,后台代码model.addAttribute("ccc", "cccc"); 在页面js上用下面两种方法取值 1. var ...

  4. js 取值&赋值-form表单

      form表单元素介绍 CreateTime--2016年9月22日10:25:54 Author:Marydon <form> 表单元素. 表单中的元素: <input>表 ...

  5. jQuery get/post区别及contentType取值

    1.GET访问 浏览器 认为 是等幂的 就是 一个相同的URL 只有一个结果[相同是指 整个URL字符串完全匹配]所以 第二次访问的时候 如果 URL字符串没变化浏览器是直接拿出了第一次访问的结果,表 ...

  6. js 取值 getElementsByTagName,getElementsByName

    getElementsByTagName,getElementsByName  获取的值是数组的所以用[0][1]引用 1 <select multiple size="2" ...

  7. asp.net JS取值

    <script> $(function () { $.post("RegisterNew.aspx", { "ddlprovince": $(&qu ...

  8. 地址栏传值 JS取值方法

    function GetQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&] ...

  9. js取值问题----key为数字

    今天远程调用一个接口在处理返回的数据的时候突然发现数组的Key是一个数字 然后如果继续用“.”的话是不会的,会报错 要用中括号就可以解决

随机推荐

  1. SpringMVC ModelAndView、Map、Model、ModelMap

    目标方法返回值可以是ModelAndView .Map.Model.ModelMap类型,但最根本还都是ModelAndView. 其中可以包含试图和模型信息. SpringMVC 会把ModelAn ...

  2. 使用dropwizard(4)-加入测试-jacoco代码覆盖率

    前言 dropwizard提供了一个简单的测试框架.这里简单集成并加入jacoco测试. Demo source https://github.com/Ryan-Miao/l4dropwizard 本 ...

  3. 【转】彻底理解js中this的指向,不必硬背。

    首先必须要说的是,this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this的最终指向的是那个调用它的对象(这句话有些问题,后面会解释为什么会有问题,虽然 ...

  4. [转]在Mac系统中安装配置Tomcat及和Eclipse 配置

    第一步:下载Tomcat 下载地址:http://tomcat.apache.org/download-70.cgi 直接下载如下选中即可: 第二步:   下载完成后 ,把解压的文件夹放到一个目录下 ...

  5. Windows内核中的内存管理

    内存管理的要点 内核内存是在虚拟地址空间的高2GB位置,且由所有进程所共享,进程进行切换时改变的只是进程的用户分区的内存 驱动程序就像一个特殊的DLL,这个DLL被加载到内核的地址空间中,Driver ...

  6. BaseServer的介绍

    服务器类型 5种类型:BaseServer,TCPServer,UnixStreamServer,UDPServer,UnixDatagramServer.注意:BaseServer不直接对外服务. ...

  7. Centos7下配置Python3和Python2共存,以及对应版本Ipython安装配置

    1.查看是否已经安装Python Centos7默认安装了python2.7.5 因为一些命令要用它比如yum 它使用的是python2.7.5. 使用python -V命令查看一下是否安装Pytho ...

  8. Linux磁盘分区/格式化/挂载(树莓派3挂载硬盘)

    [前言] 本文将要讲解的功能为Linux环境下对磁盘进行操作.包括分区.格式化.挂载外接移动存储设备等. 该文的写作背景为本人的树莓派需要外接一个固态硬盘作为存储设备,因此,便开始了一系列的折腾. [ ...

  9. Django—模板渲染

    参考文档: http://www.cnblogs.com/fnng/p/4373108.html https://code.ziqiangxuetang.com/django/django-intro ...

  10. keepalived配置文件详解(2)

    全局配置 global_defs { notification_email { #指定keepalived在发生切换时需要发送email到的对象,一行一个邮件地址 xuequn@.com } noti ...