What is JSON:初识JSON
来源:互联网 发布:哈尔滨智达网络科科技 编辑:程序博客网 时间:2024/05/22 02:13
本篇介绍JSON的基础知识。在没有接触AJAX之前我还不知道什么是JSON,在读Jeffrey Zhao的《深入Atlas系列》时才看到这个词,所以有必要了解一下JSON。这里我结合今天初浅的认识及一个小练习记录我的学习。 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。 JSON建构于两种结构: 这些都是常见的数据结构。事实上大部分现代计算机语言都以某种形式支持它们。这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能。 有关JSON的更多介绍,访问它的官方网站:http://www.json.org JSON是JavaScript对象描述符号(object literal notation)的一个子集。正因为JSON是JavaScript的子集,所以在JavaScript中我们可以很容易的使用它。 这个例子中,创建了一个对象,它只包含一个成员“bindings”。“bindings”是一个包含了3个对象的数组,而这每个对象都有"ircEvent"、"method"和"regex"3个成员。 这些成员可以用“.”或subscript 操作得到。 我们可以使用eval()函数的eval()方法调用JavaScript的编译器把JSON文本转变成对象。因为JSON是JavaScript的一个确切的子集,编译器可以正确地解析JSON文本,然后生成一个对象结构。 eval函数的执行效率很高。然而,它能够编译、执行任何的JS程序,所以这样会有安全问题。在来源可信的时候才需要使用eval,这通常是服务器提供基础页面和JSON数据的web应用程序中的情形。而很多情况中,来源是不可信的。特别是永远都不要信任客户端。 如果关心安全的话,那最好是使用JSON解析器了(js脚本中有解析功能的函数)。JSON解析器只认可JSON文本,因此它比较安全: 而JSON的字符串转换器(stringifier)则作相反的工作,它将JavaScript数据结构转换为JSON文本。JSON是不支持循环数据结构的,所以注意不能把循环的结构交给字符串转换器。 这里是JSON官方网站提供的一个开源的JSON解析器和字符串转换器:json.js 一个使用json.js的简单例子JSON是什么?
在JavaScript中使用JSON
var myJSONObject = {"bindings": [{"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"},{"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"},{"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"}]};
myJSONObject.bindings[0].method // "newURI"
var myObject = eval('(' + myJSONtext + ')');
var myObject = myJSONtext.parseJSON();
var myJSONText = myObject.toJSONString();
//<![CDATA[
function btnStringifier_Click() {
var oTxtJSON = document.getElementById("txtJSON");
var myObject = new Object(); //创建对象
var obindings = new Array();
var oFirst = new Object();
var oSecond = new Object();
var oThird = new Object();
oFirst.ircEvent = "PRIVMSG";
oFirst.method = "newURI";
oFirst.regex = "^http://.*";
//
obindings[0] = oFirst;
obindings[1] = oSecond;
obindings[2] = oThird;
//将obindings数组设置为myObject的bindings成员
myObject.bindings = obindings;
//将对象转化成JSON文本,并把文本写入Textarea中
oTxtJSON.value = myObject.toJSONString();
}
function btnParser_Click() {
var oTxtJSON = document.getElementById("txtJSON");
var oTxtJS = document.getElementById("txtJS");
//把JSON文本转变成对象
var myObject = oTxtJSON.value.parseJSON();
//获取myObject对象的第一个bindings成员得ircEvent成员(属性值)
oTxtJS.value += myObject.bindings[0].ircEvent + "/";
}
function btnEval_Click() {
var oTxtJSON = document.getElementById("txtJSON");
var oTxtJS = document.getElementById("txtJS");
//把JSON文本转变成对象
var myObject = eval('(' + oTxtJSON.value + ')');
//获取myObject对象的第一个bindings成员得ircEvent成员(属性值)
oTxtJS.value += myObject.bindings[0].method + "/";
}
//]]>
</script>
- What is JSON:初识JSON
- What is JSON:初识JSON
- What is JSON:初识JSON
- What is JSON:初识JSON
- What is JSON ?
- What is JSON ?
- What is JSON
- what is json
- What is JSON?
- What is JSON Wire Protocol?
- What is JSON, JSON-RPC and JSON-RPC-Java?
- What is JSON and Its usage
- What is a valid JSON string?
- What is JSON:在ASP.NET中使用JSON
- What is JSON:在ASP.NET中使用JSON
- What is JSON: the 3 minute JSON Tutorial
- 初识JSON
- 初识JSON
- Java删除svn文件
- MySQL触发器
- 命名空间的使用方法
- 【编程语言】Android--模拟器里卸载应用程序的方法
- 文曲星猜数游戏 C实现
- What is JSON:初识JSON
- SQL Server 连接字符串总结
- 一个简单的echo服务模型(最原始版本,代码没有优化)
- UCSRC
- 试画出一张表以说明Z*11中每个元素的阶。找出最小的原根g并计算出一张表,要求写出对所有x属于Z*11,相应的ind11,g(x)的值。
- 一个经典的动态规划题-3次AC呵呵
- JQuery .Net CheckBoxList控件
- String 详解
- dlopen dlsym dlclose解析