JSON

[ajax 学习笔记] json数据格式

字号+ 作者:H5之家 来源:H5之家 2015-09-23 15:11 我要评论( )

[ajax 学习笔记] json数据格式

之前写过ajax传送数据可以用普通文本和XML两种格式。这里记一下json数据格式。

json:javascript object notation。

之前分析过,用文本和XML传送数据各有优劣。而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" } ] }

访问json数据:

people.programmers[0].lastName;

修改json数据:

people.musicians[1].lastName = "Rachmaninov";

转换回字符串:

String newJSONtext = people.toJSONString();

json最大的价值在于将javascript真的作为javascript而非数据格式语言进行处理。

将json发送个服务器:

1)get方式

var url = "organizePeople.php?people=" + escape(people.toJSONString()); request.open("GET", url, true); request.onreadystatechange = updatePage; request.send(null);

这样做有两个缺点:

1> 在使用 GET 请求发送大块数据时,对 URL 字符串有长度限制。虽然这个限制很宽泛,但对象的 JSON 字符串表示的长度可能超出您的想象,尤其是在使用极其复杂的对象时更是如此。

        2> 在跨网络以纯文本发送所有数据的时候,发送数据面临的不安全性超出了您的处理能力。

2)post方式

var url = "organizePeople.php?timeStamp=" + new Date().getTime(); request.open("POST", url, true); request.onreadystatechange = updatePage; request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); request.send(people.toJSONString());

服务器解析json

处理 JSON 的两步骤

1> 针对编写服务器端程序所用的语言,找到相应的 JSON 解析器/工具箱/帮助器 API。

2> 使用 JSON 解析器/工具箱/帮助器 API 取得来自客户机的请求数据并将数据转变成脚本能理解的东西。

使用json解析器

php解析json用的是json-php模板

// This is just a code fragment from a larger PHP server-side script require_once('JSON.php'); $json = new Services_JSON(); // accept POST data and decode it $value = $json->decode($GLOBALS['HTTP_RAW_POST_DATA']); // Now work with value as raw PHP

通过该模板,可将获得的所有数据(数组格式的、多行的、单值的或 JSON 数据结构中的任何内容)转换成原生 PHP 格式,放在 $value 变量中。

 

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

相关文章
  •  JSON入门级学习总结-JSON数据结构

    JSON入门级学习总结-JSON数据结构

    2016-02-25 11:05

  • ASP.NET Web API 2 返回 Json格式

    ASP.NET Web API 2 返回 Json格式

    2016-02-10 17:18

  • struts2+ajax+json action向页面返回int型数据,页面报异常org.a

    struts2+ajax+json action向页面返回int型数据,页面报异常org.a

    2016-01-31 15:35

  • json学习之三:JSONArray的应用

    json学习之三:JSONArray的应用

    2016-01-30 12:32

网友点评
l