JSON大家不会陌生,但是本人还是刚刚深入了解了一下,特作此总结。
首先什么是JSON:
JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)
JSON 是轻量级的文本数据交换格式
JSON 独立于语言
JSON 具有自我描述性,更易理解
JSON 使用 JavaScript 语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言
如何解析:
JavaScript程序能够使用内建的 eval() 函数用 JSON 数据来生成原生的 JavaScript。主流浏览器都是支持该函数的。
类似 XML:
JSON 是纯文本
JSON 具有“自我描述性”(人类可读)
JSON 具有层级结构(值中存在值)
JSON 可通过 JavaScript 进行解析
JSON 数据可使用 AJAX 进行传输
相比 XML 的不同之处:
没有结束标签
更短
读写的速度更快
能够使用内建的 JavaScript eval() 方法进行解析
使用数组
不使用保留字
JSON 语法规则:
数据在名称/值对中
数据由逗号分隔
花括号保存对象
方括号保存数组
JSON 值可以是:
数字(整数或浮点数)
字符串(在双引号中)
逻辑值(true 或 false)
数组(在方括号中)
对象(在花括号中)
null
JSON 文件:
JSON 文件的文件类型是 ".json"
JSON 文本的 MIME 类型是 "application/json"
对于 eval() 函数,他是JS中的一个方法,可计算某个字符串,并执行其中的的 JavaScript 代码。
该方法只接受原始字符串作为参数,如果 string 参数不是原始字符串,那么该方法将不作任何改变地返回。因此请不要为 eval() 函数传递 String 对象来作为参数。
如果试图覆盖 eval 属性或把 eval() 方法赋予另一个属性,并通过该属性调用它,则 ECMAScript 实现允许抛出一个 EvalError 异常。
可以做几个例子来说明一下他的使用:
<script type="text/javascript"> eval("x=10;y=20;document.write(x*y)") document.write(eval("2+2")) var x=10 document.write(eval(x+17)) </script>
会输出以下内容:
200 4 27
这就像你给了一条SQL语句然后执行返回结果一样。
对于参数的合法检测,可以使用以下代码:
try { alert("Result:" + eval(prompt("Enter an expression:",""))); }catch(exception) { alert(exception); }
一般来说,对于JSON的应用,都是前台使用AJAX请求,后台要返回的对象集合使用JSON来表达传递到前台。
我们来做一个Servlet,他返回一个JSON字符串给前台:
package com; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; @SuppressWarnings("serial") public class ServiceAjax extends HttpServlet { public ServiceAjax() { super(); } public void destroy() { super.destroy(); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); PrintWriter out = response.getWriter(); out.write("[{id:1,name:'cui'},{id:2,name:'su'},{id:3,name:'qiang'}]"); out.flush(); out.close(); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } public void init() throws ServletException { } }
前台接收到返回的字符后使用eval()进行解析,然后弹出其内容:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>XMLHttpRequest对象学习</title> <script type="text/javascript" language="javascript"> function loadXMLDoc(){ var xmlhttp; if (window.XMLHttpRequest) { xmlhttp=new XMLHttpRequest(); }else { xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { var objs = eval(xmlhttp.responseText); for(i=0;i<objs.length;i++){ var user = objs[i]; alert(user.id + "-->" + user.name); } } } var url = "<%=basePath %>ServiceAjax"; xmlhttp.open("POST",url,true); xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded;charset=UTF-8"); // 增加time随机参数,防止读取缓存 xmlhttp.send("time=" + + Math.random()); } </script> </head> <body> <div id="myDiv"></div> <input type="button" name="bxml" value="Read" onclick="loadXMLDoc()" /> </body> </html>
如果你对于JS解析XML和关于JS的AJAX有任何疑惑,你可以访问:
JavaScript中XMLHttpRequest对象初步使用
也许以上内容可以帮到你。
请您到ITEYE看我的原创:http://cuisuqiang.iteye.com
或支持我的个人博客,地址:http://www.javacui.com
相关推荐
json3.js 【JS / JavaScript 中解析JSON的js包,JSON官方的JSON解析包】。JavaScript中解析JSON的js包,页面中引入json3.js,即可使用。 使用方法:JSON.parse(str), JSON.stringify(obj) 更多详情请参考博文: ...
根据提供的信息,我们可以深入探讨如何在Kettle中解析JSON串,并连接数据库进行数据处理。本文将详细介绍使用Java库解析JSON的基本方法以及如何在Kettle环境中实现这一过程。 ### Kettle与JSON解析概述 #### 1. **...
标签中的“PB生成json”意味着除了解析JSON,PB还支持生成JSON格式的输出,这在与使用JSON的系统进行通信时非常关键。生成JSON可能涉及从数据源提取数据,然后转换成JSON对象,以供API调用或其他用途。 综合以上...
JSON2.js是由Douglas Crockford开发的一个JavaScript库,专门用于处理JSON数据,尤其在老版本的浏览器中,这些浏览器可能不支持原生的JSON解析和序列化功能。 在JavaScript中,JSON主要用于对象与字符串之间的转换...
在这个名为"JSON-js-master"的压缩包中,我们很可能是找到了一个JavaScript实现的JSON解析和序列化库的源代码。 在JavaScript中,JSON解析是将JSON格式的字符串转换为JavaScript对象的过程,这个过程也称为解码。...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web应用程序之间传递数据。...对于经常与JSON数据打交道的IT专业人士而言,一款高效、稳定的离线JSON解析工具是必不可少的开发辅助工具。
总结来说,PB9生成和解析JSON的功能虽然需要借助额外的库或自定义函数,但通过这些工具,开发者可以轻松地在PB9应用中与JSON数据交互,从而与各种现代Web服务和API无缝对接。这极大地扩展了PB9应用程序的能力,使其...
而JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于Web服务与客户端之间的数据传输。在本项目中,我们关注的是如何在MFC应用中使用json11库来解析和操作JSON数据。 json11是一个小型且易于...
在IT行业中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛应用于Web服务与客户端之间的数据传输。在C#编程环境中,处理JSON数据是常见的任务,尤其是在需要解析多级嵌套结构时。本篇文章将...
三、JSON与其他语言的交互 1. JSON的通用性使得它可以在多种编程语言中使用,如Python、Java、C#等。这些语言都有内置的库或函数来处理JSON数据。 2. Python中,使用 `json` 模块进行JSON操作: ```python import ...
2. **解析JSON**:在C++中,解析JSON文件或字符串通常需要一个库,如nlohmann/json,这是一个流行的选择。首先,你需要包含库头文件,然后读取JSON数据,最后调用解析函数将JSON字符串转换为C++对象。 ```cpp #...
**JSON(JavaScript Object Notation)解析与格式化** JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在EditPlus中,你可以方便地对JSON字符串进行格式化,使其更清晰易读。这个...
`json3.js`是一个兼容性极强的JavaScript库,旨在为那些不完全支持ECMAScript 5的浏览器提供完整的JSON解析和字符串化功能。它包括了`JSON.parse()`和`JSON.stringify()`的实现,以及其他一些扩展的功能。这个库使得...
### JavaScript解析JSON #### 使用`eval()`方法 提供的代码示例中使用了`eval()`函数来解析JSON字符串。具体代码如下: ```javascript var data1 = "[{value:'3017',label:'3017:лũҩҺģжģȼ'},{value:'3018...
在本文中,我们将深入探讨如何使用Gson解析JSON数据,包括处理简单JSON和复杂的JSON结构。 首先,我们要了解JSON的基本概念。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,...
在JavaScript中,`JSON.parse()`函数可以用来解析JSON字符串,但当遇到嵌套结构时,需要自定义函数配合递归来处理。以下是一个简单的递归解析JSON字符串的例子: ```javascript function recursiveParse(jsonStr) {...
在IT行业中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛应用于Web服务与客户端之间的数据传输。C#和ASP.NET是Microsoft开发的编程语言和框架,它们提供了丰富的支持来处理JSON数据,包括...
标题提到的"pb解析json工具"是一种专门用于处理protobuf(简称pb)与JSON两种数据格式相互转换的工具。这两种格式各有优势,广泛应用于不同场景。 首先,让我们了解一下JSON(JavaScript Object Notation)。JSON是...
PB Json解析库是一种用于处理协议缓冲区(Protocol Buffers,简称PB)与JSON之间相互转换的工具。在软件开发中,尤其是涉及到数据交换时,PB和JSON都扮演着重要的角色。PB是Google推出的一种高效的数据序列化协议,...
在Android开发中,JSON(JavaScript Object Notation)是一种常用的数据交换格式,因其简洁、易读、易编写的特点,被广泛应用于服务器与客户端之间的数据传输。本篇将详细讲解如何在Android应用中解析JSON数据,主要...