`
shlei
  • 浏览: 287917 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

使用JSON服务

    博客分类:
  • FLEX
阅读更多
Flex是用Flash播放器的编程语言ActionScript 3编写的。它和JavaScript很类似,但它没有eval方法。那么我们如何将JSON文本转换成ActionScript数据呢?幸运的是,免费的ActionScript 3核心库(http://as3corelib.googlecode.com)包含了JSON解码器和JSON编码器。

列表7中的代码演示了JSONDecoder对象的用法:
<?xml version="1.0" encoding="utf-8"?>
 <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical"
 creationComplete="jsonservice.send()">
 <mx:Script>
 <![CDATA[
 import mx.rpc.events.ResultEvent;
 import com.adobe.serialization.json.JSONDecoder;

 private function onJSONResult( event:ResultEvent ) : void {
 var data:String = event.result.toString();
 data = data.replace( /\s/g, '' );
 var jd:JSONDecoder = new JSONDecoder( data );
 dg.dataProvider = jd.getValue();
 }
 ]]>
 </mx:Script>
 <mx:HTTPService id="jsonservice"
 url="http://localhost:8080/jsp-examples/flexds/json.jsp"
 resultFormat="text" result="onJSONResult(event)" />
 <mx:Panel title="Stock Data " width="100% " height="100% ">
 <mx:DataGrid id="dg" width="100%" height="100%">
 <mx:columns>
 <mx:DataGridColumn dataField="compa " />
 <mx:DataGridColumn dataField="compb " />
 </mx:columns>
 </mx:DataGrid>
 </mx:Panel>
 </mx:Application><?xml version="1.0" encoding="utf-8"?>
 <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical"
 creationComplete="jsonservice.send()">
 <mx:Script>
 <![CDATA[
 import mx.rpc.events.ResultEvent;
 import com.adobe.serialization.json.JSONDecoder;

 private function onJSONResult( event:ResultEvent ) : void {
 var data:String = event.result.toString();
 data = data.replace( /\s/g, '' );
 var jd:JSONDecoder = new JSONDecoder( data );
 dg.dataProvider = jd.getValue();
 }
 ]]>
 </mx:Script>
 <mx:HTTPService id="jsonservice"
 url="http://localhost:8080/jsp-examples/flexds/json.jsp"
 resultFormat="text" result="onJSONResult(event)" />
 <mx:Panel title="Stock Data " width="100% " height="100% ">
 <mx:DataGrid id="dg" width="100%" height="100%">
 <mx:columns>
 <mx:DataGridColumn dataField="compa " />
 <mx:DataGridColumn dataField="compb " />
 </mx:columns>
 </mx:DataGrid>
 </mx:Panel>
 </mx:Application>

因为服务器返回的是JSON文本,我们无法使用<mx:XML>标签来取得数据。因此我们用的 是<mx:HTTPService>标签。它的工作原理跟<mx:XML>很像。你需要给它一个服务的URL,并且告诉它结果的 格式(比如文本)以及HTTP服务发回响应数据时需要调用的ActionScript方法。

在这个例子中,我为结果处理方法指定的是在<mx:Script>标签中定义的onJSONResult方法。这个方法会去掉所有空格,并把 JSON文本传递给JSONDecoder对象。接着它将<mx:DataGrid>控件的dataProvider设置成 JSONDecoder返回的处理结果。

所有这些都是安全的,因为ActionScript不支持eval方法。JSONDecoder类是个简单状态机解析器,来实时地从文本构建出对象。最糟糕的情况可能是这样的过程会需要一段比较长的时间,如果JSON文本太大的话。

BTW,Flex4里面内置了JSON类库,无需再自行导入,可直接使用。

From http://www.infoq.com/cn/articles/flex-xml-json
其他参考:
http://blogold.chinaunix.net/u/21684/showart_1902294.html
http://yexin218.iteye.com/blog/207638
分享到:
评论

相关推荐

    MFC使用json11解析JSON

    json11是一个小型且易于使用的C++ JSON解析器和生成器,它提供了将JSON字符串转换为C++对象以及反之的过程。下面我们将详细讨论如何在MFC项目中集成json11库,并实现JSON数据的解析和序列化。 首先,你需要获取json...

    Java中使用Json

    在Web服务中,JSON常用于数据交换。当我们使用像Apache HttpClient或OkHttp这样的HTTP客户端库时,可以方便地发送和接收JSON数据。例如,发送一个包含JSON数据的POST请求: ```java CloseableHttpClient client ...

    json-server-auth:JSON服务器的身份验证和授权流程

    # NPMnpm install -D json-server json-server-auth# Yarnyarn add -D json-server json-server-auth 使用users集合创建db.json文件: { " users " : []} 启动JSON服务器(使用JSON服务器Auth作为中间件):...

    json_fetcher:通过HTTP +缓存轻松使用JSON服务数据的工具。 这种缓存JSON数据的方法可实现更平滑的UI

    json_fetcher 通过HTTP +缓存轻松使用JSON服务/数据的工具。 这种缓存JSON数据的方法可以使UI更加平滑。快取在低级别,缓存的数据由管理。 但是,数据将始终在第二步进行更新。 这就是为什么使用Stream代替Future&lt;T&gt;...

    JSP中如何使用JSON

    在这个“Google导航案例”中,我们将探讨如何在JSP中使用JSON来实现数据的交互。 首先,了解JSON的基本结构至关重要。JSON格式基于JavaScript语法,但它是独立于语言的。一个JSON对象以大括号{}包围,由键值对组成...

    json文件是什么+为什么使用json文件+如何使用json文件

    为什么使用 JSON 文件?如何使用 JSON 文件? JSON 文件是什么? JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,于 21 世纪初由 Douglas Crockford 提出。该格式旨在解决数据交换问题,提供了一...

    Ajax中使用JSON传输数据

    本篇文章将深入探讨在Ajax中如何使用JSON来传输数据,以及涉及到的相关工具和源码。 首先,让我们理解JSON的基本概念。JSON是一种基于JavaScript语法的数据表示方式,它可以表示数组、对象、数值、字符串等基本数据...

    使用json封装数据 html源代码

    在IT行业中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它以其简洁、易读、易于解析的特点被广泛应用于Web服务和客户端之间的数据交互。JSON是基于JavaScript的一个子集,但它是独立于语言的...

    MFC/VC控制台下使用json库

    本文将深入探讨如何在MFC/VC++控制台应用程序中集成并使用JSON库,以便更好地处理JSON数据。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛应用于服务器与客户端之间的数据传输。 首先,我们...

    JSON库使用DEMO

    在这个“JSON库使用DEMO”中,我们将探讨如何在编程中利用JSON库进行数据的序列化和反序列化,以及相关的操作。 1. **JSON的基本结构**: JSON的数据结构主要由对象(Object)和数组(Array)组成。对象是键值对的...

    C# WebService 客户端 服务器 Json

    2. Newtonsoft.Json库:除了.NET内置的Json处理,还可以使用流行的第三方库Newtonsoft.Json(也称为Json.NET)。它提供了更强大的功能和更高的性能,如`JsonConvert.DeserializeObject`和`JsonConvert....

    使用json和服务器php交互的简单实例

    在Web服务中,JSON被广泛用于服务器与客户端之间的数据交互,因为它的结构清晰、体积小且易于传输。 PHP(Hypertext Preprocessor)是一种流行的开源脚本语言,常用于服务器端编程,处理HTTP请求并返回响应。在与...

    使用JSON-RPC

    JSON-RPC(JavaScript Object Notation Remote Procedure Call)是一种轻量级的远程调用协议,它使用JSON(JavaScript Object Notation)作为数据交换格式。在Web服务和分布式系统中,JSON-RPC提供了一种简单的方式...

    java使用Json所需要导入的所有jar包

    为了在Java程序中使用JSON,你需要引入一些特定的库,这些库提供了处理JSON对象的方法和功能。本资源包含的是"java使用Json所需要导入的所有jar包",确保了你在处理JSON数据时所需的全部依赖。 首先,最重要的库是`...

    java 使用json-rpc

    本文将详细解释如何在Java环境中使用JSON-RPC进行开发。 ### 概述 JSON-RPC的目标是提供一种简单、高效且跨平台的远程调用机制。它使用JSON作为数据交换格式,因为JSON易于解析,且在JavaScript和许多其他编程语言...

    Ajax使用JSON向服务器发送数据.doc

    "Ajax 使用 JSON 向服务器发送数据" Ajax 使用 JSON 向服务器发送数据是将数据从客户端传输到服务器端的一种方式,使用 JSON 作为数据交换格式可以提高数据传输效率和简化数据处理过程。 在了解 Ajax 使用 JSON 向...

    json的应用手册

    7. JSON高级用法:如使用JSON Schema验证JSON数据结构,以及如何有效地使用JSON进行大规模数据处理。 手册的版权信息指出,除非经过出版商的书面许可,否则不允许复制、存储或传输手册内容。此外,尽管编辑和作者...

    JSON.rar_Delphi JSON_JSON_delphi json_json delphi

    通过对这些源代码的学习,开发者可以深入理解如何在Delphi中有效地使用JSON,从而提高数据处理效率,并与Web服务或其他使用JSON的应用程序进行无缝通信。通过实践和调试这些代码,你将能够掌握Delphi与JSON交互的...

    java使用json需要的jar包(最新)

    JSON(JavaScript Object ...总之,JSON在现代Web服务和分布式系统中的重要性不言而喻。通过使用正确的Java JSON库,开发者可以有效地处理JSON数据,实现数据的序列化和反序列化,从而提升应用程序的交互性和可维护性。

    delphi 使用json 示例

    Delphi是一种强大的面向对象的编程环境,而JSON(JavaScript Object Notation)则是一种轻量级的数据交换格式,广泛用于Web服务和应用程序之间的数据传输。在Delphi中,我们可以使用内置的System.JSON单元来处理JSON...

Global site tag (gtag.js) - Google Analytics