AJAX依赖于符合预期的JSON服务 使用JSV和Dojo提高可靠性

这样做的一个好处是,您可以下载样例实用工具,帮助您编写自己的模式,并参照这些工具来验证对象。

AJAX 应用程序依赖于符合预期的 JSON 服务。如果服务没有按预期的格式进行响应,或者使用无效的内容进行响应,则会发生意外行为。对于复杂应用程序,您可以通过实现自定义案例来验证服务响应,从而减轻发生意外行为的风险。另外,您还可以利用 JSON Schema 来验证输入。

JSON Schema 是一种草案标准 (draft standard),它指定了一种基于 JSON 的格式来定义 JSON 数据的结构。在撰写本文时,最新的草案标准版本是 draft-03。

本文将对几个 JSON Schema 验证例程进行比较。了解如何使用一些一流的库,并探讨创建库来验证通信的注意事项和最佳方案。本文还将介绍一种新的实用工具,帮助您编写自己的 JSON Schema。

为您的应用程序选择一个库

为您的应用程序选择一个库可能会是一件复杂的工作。每个应用程序都拥有不同的约束,这些约束会影响您的选择。表 1 简要概述了四个 ">JavaScript JSON Schema 库的特性。

表 1. 针对 JavaScript 的 JSON Schema 验证库

库(作者) 草案版本支持 库的大概规模 JSV: JSON Schema 验证器 (Gary Court) draft-01、draft-02 和 draft-03 120KB json-schema (Kris Zyp) draft-03 10KB(需要 CommonJS) dojox.json.schema (Kris Zyp) draft-02 10KB(需要 Dojo) schema.js (Andreas Kalsch) draft-02(部分) 10KB(需要 CommonJS)

基于 Dojo 的应用程序可能会使用 dojox.json.schema 库,因为该库包含在工具箱中。支持多个版本的(草案)标准的应用程序可能会使用 JSV。

dojox.json.schema 看上去像是 json-schema 的一个分支,所以它们的用法非常相似。schema.js 只实现 draft-02 的一个子集。本文主要关注使用 dojox.json.schema 和 JSV 的示例。

使用 dojox.json.schema

清单 1 显示了一个验证简单对象的 HTML 代码片段。该代码旨在将此对象插入 head HTML 元素中。

清单 1. dojox.json.schema 的单独使用

<script src="http://ajax.googleapis.com/ajax/libs/dojo/1.7.0/dojo/dojo.js" type="text/javascript"></script><script type="text/javascript"> require(["dojox/json/schema"],
function() { // Object to validate var successObj = { "foo" : "bar" }; var failureObj = { "foo" : 1234 }; // Schema var schema = { "type": "object", "properties" : { "foo" : { "type" : "string" } } }; // Run validation,
which should succeed // Change this line to use failureObj to see the failure case var result = dojox.json.schema.validate(successObj, schema); // Check results if (result.valid) { // Success, do something
alert("Object is valid"); } else { // Failure - extract the errors
array var errorArr = result.errors; alert("property : " + errorArr[0].property + "\nmessage : " + errorArr[0].message); } }); </script>

时间: 2024-09-24 03:22:41

AJAX依赖于符合预期的JSON服务 使用JSV和Dojo提高可靠性的相关文章

HTTP服务端JSON服务端

HTTP服务端JSON服务端 最后更新日期:  2014-5-18 Author: Kagula 阅读前提: CMake工具的基本使用 内容简介:    CPPCMS是个开源Web开发框架,通过它可以很容易实现HTTP服务和JSON服务,这里介绍CPPCMS开发环境的搭建.写一个CPPCMS测试程序,它建立HTTP服务,向浏览器返回Hello,World页面.CPPCMS依赖的一些第三方库,其它地方已经介绍怎么Build,所以这里不重复了. 环境:Windows8.1 64bit.Visual

索尼CEO称PSVita销量符合预期

新浪科技讯 北京时间8月31日早间消息,索尼CEO平井一夫周四表示,尽管在某些市场的销售状况不佳,但最新游戏掌机PS Vita的销量仍基本符合索尼的预期.PS Vita符合预期PS Vita于今年早些时候开始销售.随着智能手机和平板电脑的发展,一些分析师对游戏掌机的发展空间 提出质疑.平井一夫在德国IFA消费电子展上表示:"从全球 来看,PS Vita基本达到了我们的预期,但在某些地区可能差于预期."不过他拒绝透露,PS Vita具体在哪些地区表现不佳.平井一夫于今年4月出任索尼CEO

AJAX跨域请求JSONP获取JSON数据的实例代码

Asynchronous JavaScript and XML (Ajax) 是驱动新一代 Web 站点(流行术语为 Web 2.0 站点)的关键技术.Ajax 允许在不干扰 Web 应用程序的显示和行为的情况下在后台进行数据检索.使用XMLHttpRequest 函数获取数据,它是一种 API,允许客户端 JavaScript 通过 HTTP 连接到远程服务器.Ajax 也是许多 mashup 的驱动力,它可将来自多个地方的内容集成为单一 Web 应用程序. 不过,由于受到浏览器的限制,该方法

利用ajax获得后台传过来的json,前端无法解析,对前端不是很深入,求指导

问题描述 利用ajax获得后台传过来的json,前端无法解析,对前端不是很深入,求指导 这是servlet:package com.kj.servlet; import java.io.IOException;import java.util.ArrayList;import java.util.List; import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servle

jquery的ajax和getJson跨域获取json数据的实现方法

 本篇文章主要是对jquery的ajax和getJson跨域获取json数据的实现方法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 很多开发人员在使用jquery在前端和服务器端进行数据交互,所以很容易会认为在前端利用jquery就可以读取任何站点的数据了.近日在进行开 发时,因为要和第三方公司的一个项目进行数据的共享,因为考虑多不占用服务器的资源,遂决定直接在html进行数据的读取,不走服务器端进行中转了.然后 正好就遇到了浏览器端跨域访问的问题.   跨域的安全限制都是指浏览器端

jQuery Ajax和getJSON获取后台普通json数据和层级json数据用法分析_jquery

本文实例讲述了jQuery Ajax和getJSON获取后台普通json数据和层级json数据用法.分享给大家供大家参考,具体如下: 运行效果截图如下: 具体代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="h

一季报显示券商"不差钱"主业务符合预期薪酬藏乾坤

券商一季度主要业务符合预期,在自有资金充裕的基础上,创新业务或将成为未来业绩的最大看点之一. 券商股整体业绩表现在预期之中,一季度,9家上市证券公司净利润38亿元,环比增长73%.同比下降16%:中小券商弹性十足,除长江证券和国金证券外,环比增速均超过100%.单个公司业绩喜忧参半,宏源证券和东北证券业绩增速超出预期,其中宏源环比增速达到975%:中信环比增长仅7%.低于预期. 主要业务符合预期 经纪佣金环比增长41%,符合预期,佣金率下降也在预期之内,但10%的降幅超出预期.从中长期趋势来看,

通过构造AJAX参数实现表单元素JSON相互转换_AJAX相关

ajax提交服务器数据, 整理一下转换方法. HTML: <form id="fm" name="fm" action=""> <input name="UserName" type="text" value="UserName1"/> </form> <input name="UserId" id="UserId&

js+ajax处理java后台返回的json对象循环创建到表格的方法_AJAX相关

本文实例讲述了js+ajax处理java后台返回的json对象循环创建到表格的方法.分享给大家供大家参考,具体如下: //注:LO是表格的id: 需要自己创建表头, n行,9列的表格: var tab_id; function varify(cardinno) { tab_id=document.getElementById("Layer1"); displayDiv(); tab_id.style.display="none"; var url="get