JSON

stonezhuzisgu的专栏

字号+ 作者:H5之家 来源:H5之家 2016-08-30 12:00 我要评论( )

在Android多线程(一)线程池这篇文章时,当我们要创建ThreadPoolExecutor的时候需要传进来一个类型为BlockingQueue的参数,它就是阻塞队列,在这一篇文章里我们会

   在AJAX的处理数据中,很多用xml来传输处理数据。但是json处理数据比xml更具方便性:易操作。
使用javacript更好的与数据交互。
   来看看人家怎么介绍json的:
   JSON的来历
 XML 的作用是格式化数据内容。如果我们不用XML还有什么更好的方法吗?这个答案是JSON。介绍JSON之前我先介绍一下JavaScript这门脚本语 言。脚本语言自身有动态执行的天赋。即我们可以把想要执行的语句放在字符串里,通过eval()这个动态执行函数来执行。字符串里的内容会像我们写的脚本 一样被执行。
    我们可以在字符串中放任何脚本语句,包括声明语句:

<HTML>
<HEAD>
<TITLE>eval example 2</TITLE>
</HEAD>
<BODY>
<script>
 define = "{name:'Michael',email:'17bity@gmail.com'}";
 eval("data = "+define);
 alert("name:"+data.name);
 alert("email:"+data.email);
</script>
</BODY>
</HTML>


  如果我们在后台异步传来的文本是JavaScript的声明语句,那么不是一条eval方法就能解析了?对于解析复杂的XML,这样的效率是多么大的提高啊!

现在来对比下xml与json的数据格式的写法:
     比如要从后台载入一些通讯录的信息,如果写成XML,如下:

<contact>
 <friend>
  <name>Michael</name>
  <email>17bity@gmail.com</email>
  <homepage></homepage>
 </friend>
 <friend>
  <name>John</name>
  <email>john@gmail.com</email>
  <homepage></homepage>
 </friend>
 <friend>
  <name>Peggy</name>
  <email>peggy@gmail.com</email>
  <homepage></homepage>
 </friend>
</contact>


  而写成JSON呢:

[
{
 name:"Michael",
 email:"17bity@gmail.com",
 homepage:""
},
{
 name:"John",
 email:"john@gmail.com",
 homepage:""
},
{
 name:"Peggy",
 email:"peggy@gmail.com",
 homepage:""
}
]

     简单的不只是表达上,最重要的是可以丢弃让人晕头转向的DOM解析了。因为只要符合JavaScript的声明规范,JavaScrip会自动帮你解析好 的。Ajax中使用JSON的基本方法是前台载入后台声明JavaScript对象的字符串,用eval方法来将它转为实际的对象,最后通过 DHTML更新页面信息。

JSON的格式

  JSON的基本格式如下,图片来自json.org:

  ·对象是属性、值对的集合。一个对象的开始于"{",结束于"}"。每一个属性名和值间用":"提示,属性间用","分隔。

Ajax:拥抱JSON,让XML走开(图一)



  ·数组是有顺序的值的集合。一个数组开始于"[",结束于"]",值之间用","分隔。

Ajax:拥抱JSON,让XML走开(图二)



  ·值可以是引号里的字符串、数字、true、false、null,也可以是对象或数组。这些结构都能嵌套。

Ajax:拥抱JSON,让XML走开(图三)



  ·字符串的定义和C或Java基本一致。

Ajax:拥抱JSON,让XML走开(图四)



  ·数字的定义也和C或Java基本一致。

Ajax:拥抱JSON,让XML走开(图五)


学会了如果在使用json的书写。可以在ajax的数据处理很好的交互 。

    json如何在js中使用呢?  

掌握了 JSON 格式之后,在 JavaScript 中使用它就很简单了。JSON 是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON 数据不需要任何特殊的 API 或工具包。

将 JSON 数据赋值给变量

例如,可以创建一个新的 JavaScript 变量,然后将 JSON 格式的数据字符串直接赋值给它:

var people =
{ "programmers": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" },
{ "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" }
],
"authors": [
{ "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },
{ "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" },
{ "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" }
],
"musicians": [
{ "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },
{ "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }
]
}


这非常简单;现在 people 包含前面看到的 JSON 格式的数据。但是,这还不够,因为访问数据的方式似乎还不明显。


访问数据

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • Python中json格式数据的编码与解码方法详解

    Python中json格式数据的编码与解码方法详解

    2016-07-26 17:00

  • 常见的java代码转换成json

    常见的java代码转换成json

    2016-01-27 17:01

  • xiaohui的专栏

    xiaohui的专栏

    2016-01-16 16:26

  • 聊聊前端和后台的数据交互与协议

    聊聊前端和后台的数据交互与协议

    2016-01-03 12:25

网友点评
l