`
longgangbai
  • 浏览: 7340703 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
阅读更多

对于B/S结构的企业应用来说,Web前台编程占了70%以上的工作量,根本原因就是在于程序员受限于浏览器。我们知道,浏览器接受到的后台服务器传过来的数据能够呈现给程序员、并可以由程序员来操纵的从应用的层面上讲只有文本(当然浏览器也可以接受非文本的数据,浏览器会以自己的方式处理,我们就无能为力了),所以对于前台程序员来说,要做的就是把这些文本转换为用户可读的页面。

 于是,我们就一直在做把数据和HTML标签拼接然后输出的工作。

后来我们使用某些复用技术,如JSP的自定义标签(这也有两个层次,

一是对流程控制、获取数据等基本操作的封装,如JSTL等;

二是对页面构件的封装,例如把List封装成Table输出等),我还是比较欣赏使用JSP标签方式的。

当然,随着Web2.0概念的提出,又出现了新的方式,那就是在前台(浏览器)里使用脚本(多数为JavaScript)来动态的渲染(render)页面。于是为了前台构件复用,我们需要的不仅仅是数据,可能还需要数据的结构、展现方式、动态效果等信息,也就是说我们需要一种方式把数据以及数据展现的相关信息以文本的方式传到前台来。其实感觉上好像回到了最原始的状态,因为这和我们直接把组织好的HTML输出到浏览器是一个理念。但是,基于对用户界面体验的考虑,也从技术流行的角度上(我认为很大程度上是大家对AJAX技术的迷信),我们不能再走老路。

现在就需要我们选择了,我们需要选择一种文本结构把数据以及数据展现的相关信息传到前台来,

首选的是XML(我觉着XML是软件技术的一次重大革新),好像没有比它更合适的了,配合XPATH、XSL等技术JS对XML的解析、操纵可以称得上简便易用,唯一差强人意的是性能略差(性能还可接受,但是确实有待提高)。

 

JSON不知道从什么时候起,也成为了前后台数据交互的一种数据格式,它的优点就是简单,从后台传过来文本如果格式正确,只要简单的调用一下JS的eval方法就可以把一个字符串转换成JS对象。这个JavaScript旧瓶好像是被装上了新酒,于是焕发出了惊人的活力,看看现在网络上流行的JS前台框架,ext、dojo、yui等等都或多或少或直接或间接的把JSON对象作为数据格式应用在自己的API、页面构件中。有了前台脚本的支持,我们所需要的就是后台对JSON格式的组织、操纵等行为的支持,于是就有了以各种语言(C#、Java、Perl等等,去http://www.json.org看吧)实现的类库,json-lib就是用Java语言实现的这样一套类库。我以前也使用过这个类库的几个基本的简单功能,现在这个开源项目的版本已经升级到2.3(我现在研究的是2.1),所以我觉着很有必要接触一下它的很多相对高级的功能。

运行所需要的类库:

commons-beanutils-1.7.0.jar

commons-collections-3.2.jar

commons-lang-2.3.jar

commons-logging-1.1.jar

ezmorph-1.0.3.jar

json-lib-2.1.jar

这是我本机上的运行环境,我用的json-lib是2.1版本,其实官方网站上有明确的说明。

 

 

JSON对象格式的定义,我们就很容易的通过服务器端程序动态输出JSON字符串到客户端。

先看看下面的例子:


{items:[    
{    
id:1,    
author:\"Achely\",   
url:\"http://www.zhangyongjun.com\",   
content:\"Welcome to Achely blog\"   
},   
{   
id:2,   
author:\"Achely2\",   
url:\"http://www.zhangyongjun.com\",   
content:\"Welcome to Achely blog\"   
}    
]};   

与之对应的XML格式:


<items>   
    <item>   
        <id>1</id>   
        <author>Achely</author>   
        <url>http://www.zhangyongjun.com</url>   
        <content>Welcome to Achely blog</content>   
    </item>   
    <item>   
        <id>2</id>   
        <author>Relkn</author>   
        <url>http://www.zhangyongjun.com</url>   
        <content>Welcome to Achely blog</content>   
    </item>    
</items>

通过上面,我们不难看出:

1、对象:
{name:"achely",email:"achely@gmail.com",homepage:"http://www.zhangyongjun.com"}
{ 属性 : 值 , 属性 : 值 , 属性 : 值 }


2、数组是有顺序的值的集合。一个数组开始于"[",结束于"]",值之间用","分隔。
[
{name:"achely",email:"achely@gmail.com",homepage:"http://www.zhangyongjun.com"}, {name:"achely",email:"achely@gmail.com",homepage:"http://www.zhangyongjun.com"},
{name:"achely",email:"achely@gmail.com",homepage:"http://www.zhangyongjun.com"}
]


3、值可以是字符串、数字、true、false、null,也可以是对象或数组。这些结构都能嵌套。

那么,在客户端的JS中如何访问JSON对象呢?

js中这样的定义:

var obj='{name:"achely",email:"achely@gmail.com",homepage:"http://www.topmanopensource.iteye.com"} ';

属性访问:obj.name

数组访问:obj.array[i]

分享到:
评论

相关推荐

    json的应用手册

    根据给出的信息,有关JSON的应用手册主要针对在桌面、服务器、网页以及移动应用中应用JSON。该手册包含了80多个配方,这些配方旨在帮助开发者充分利用JSON在各自的应用中。 该手册由Packt Publishing出版,Ray ...

    JSON开发完整资源包

    这个"JSON开发完整资源包"显然是为了帮助开发者更有效地进行JSON相关的工作,包括可能与其他框架的集成。 首先,JSON的基本结构基于键值对(key-value pairs)和数组(arrays),它支持以下几种基本类型: 1. 对象...

    json开发文档API

    JSON开发文档API是开发者在处理JSON数据时的重要参考资料,它提供了详细的API接口说明和使用方法。 JSON的核心结构包括对象和数组。对象是以大括号 `{}` 包裹的一系列键值对,键与值之间用冒号 `:` 分隔,多个键值...

    GoAhead Json开发

    本资源包含的"GoAhead Json开发"文档,可能涵盖了以下关键知识点: 1. **GoAhead服务器配置**:如何在Linux系统上安装和配置GoAhead服务器,包括启动、停止服务器,以及配置HTTP监听端口、访问日志和错误日志等。 ...

    json开发相关jar包

    在"json开发相关jar包"中,我们可以推断这个压缩包可能包含了用于处理JSON的Java库。 常见的Java JSON处理库有以下几种: 1. **Jackson**:Jackson是Java中非常流行的JSON处理库,提供了高效的序列化和反序列化...

    json开发包

    这个“json开发包”可能是指一个包含JSON解析、序列化、验证等功能的软件库或框架,旨在简化开发者处理JSON数据的过程。这样的开发包通常会提供API,让开发者可以方便地将JSON字符串转化为对象,或将对象转化为JSON...

    json开发需要的Jar包

    以下是一些关于JSON开发和相关Jar包的重要知识点: 1. JSON格式:JSON是一种基于文本的、人可读的数据格式,其数据结构主要由对象(键值对)和数组组成。对象以大括号{}包裹,键值对以逗号分隔,键用引号包围;数组...

    【Android】JSON应用

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛应用于移动开发,尤其是在Android平台上。它易于人阅读和编写,同时也易于机器解析和生成。这个“【Android】JSON应用”主题主要涵盖如何在...

    json 开发包

    JSON开发包通常包含了用于处理JSON数据的库和工具,方便开发者在各种编程语言中进行JSON操作。 JSON格式的基本结构包括对象和数组。对象是由键值对组成的无序集合,键用双引号包围,值可以是字符串、数字、布尔值、...

    json源码及文档,关于json开发及利用json

    六、JSON在Web开发中的应用 JSON广泛应用于API接口的数据交换、存储客户端数据(如Web Storage或IndexedDB)、本地模拟服务器数据(如JSONP)等。通过学习JSON,你可以更好地理解和构建现代Web应用。 总之,这个...

    jsp中json的应用

    在IT行业中,特别是在Web开发领域,JSON因其简洁、高效的特点,已经成为了服务器与客户端之间数据交互的首选格式。在JSP(JavaServer Pages)环境中,结合JSON的使用可以极大地提高应用的性能和用户体验。 标题"jsp...

    fastJSON C#的JSON开发包 1.9.8

    该库由James Newton-King开发,旨在简化JSON在.NET应用程序中的使用,提供了丰富的功能和高效的性能。版本1.9.8是其在特定时间点的稳定版本,可能包含了一些重要的改进和修复。 ### JSON概述 JSON(JavaScript ...

    json 包含所有json开发lib

    本压缩包“json 包含所有json开发lib”提供了一系列用于处理JSON的开发库,对于进行JSON相关的开发工作非常有帮助。 1. **JSON的基本结构** JSON由键值对组成,键是字符串,值可以是各种数据类型,包括字符串、...

    json应用简单小项目

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它以其简洁明了的文本形式,易于人阅读和编写,同时也易于机器...通过这个项目,你可以深入理解JSON和AJAX的结合使用,为今后的Web开发打下坚实基础。

    ssh整合与json的应用

    SSH整合与JSON的应用是现代软件开发中的重要环节,特别是在分布式系统和远程服务器管理中。SSH(Secure Shell)是一种网络协议,用于在不安全的网络上安全地执行命令和传输数据,而JSON(JavaScript Object Notation...

    李维 《使用Delphi开发分散式JSON应用系统》

    《使用Delphi开发分散式JSON应用系统》是李维撰写的一部专著,该书主要讲解如何利用Delphi这一强大的编程工具,构建高效、可扩展的分布式应用程序,并结合JSON(JavaScript Object Notation)数据格式进行数据交换。...

    Java中JSON应用

    总的来说,Java中的JSON应用涵盖了数据交换、序列化与反序列化、数据验证等多个方面,而Apache Commons库则提供了额外的功能支持,使得开发更加便捷高效。了解并熟练掌握这些知识对于提升Java Web开发的效率和质量至...

    java开发json所需要的jar包

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web应用程序之间的数据传输。在Java开发中,为了处理JSON数据,通常需要引入特定的库,如本主题所提及的`json-lib`。`json-lib`是Java...

Global site tag (gtag.js) - Google Analytics