加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 00:27:04 所属栏目:百科 来源:网络整理
导读:之前写过ajax传送数据可以用普通文本和XML两种格式。这里记一下json数据格式。 json:javascript object notation。 之前分析过,用文本和XML传送数据各有优劣。而json可以轻松地将javascript对象转换成可以随时发送的数据。 一个json数据例子: var people

之前写过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",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 变量中。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读