Flex解析JSON

首先需下载corelib,将解压后文件corelib.swc放入[Flex安装目录]\sdks\3.2.0\frameworks\libs;

1 jsp页面--转自网络代码(用于生成JSON数据)

<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="1.2"> <jsp:directive.page import="java.text.*"/>
<jsp:directive.page import="java.lang.*"/>
<jsp:directive.page contentType="text/json"/>   [<jsp:scriptlet>   <![CDATA[   double compa = 1000.0; double compb = 900.0;   for (int i = 0; i<=30; i++)   { compa += ( Math.random() * 100 ) - 50;   compb += ( Math.random() * 100 ) - 50;   if ( i > 0 ) out.print( "," ); ]]>   </jsp:scriptlet>   {"compa":<jsp:expression>compa</jsp:expression>,"compb":<jsp:expression>compb</jsp:expression>}   <jsp:scriptlet>   <![CDATA[ } ]]> </jsp:scriptlet>] </jsp:root>

 

2 MXML页面--转自网络代码

<?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();

//可以直接通过以下数据测试

//     var data:String = "[{\"uv\":3,\"pv\":24,\"date\":\"2011-07-20\"},{\"uv\":1,\"pv\":1,\"date\":\"2011-07-21\"},{\"uv\":13,\"pv\":44,\"date\":\"2011-07-22\"}]";   data = data.replace( /\s/g, '' );   var jd:JSONDecoder = new JSONDecoder( data );   dg.dataProvider =jd.getObject(); } ]]>
</mx:Script> <mx:HTTPService id="jsonservice" url="http://localhost:8080/testdemo/testJs.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>

网络中查到的源代码中,给出的.swc文件有误,JSONDecoder(param)只有一个参数,且获得结果的方法为.getObject(),而不是.getValue() .

posted @ 2012-08-23 14:19  点亮创想  阅读(1269)  评论(0编辑  收藏  举报