葡京在线开户NSJSONSerialization 抛来非常 – “Garbage at End” 解决方案

 如果想如果在flex加载pdf,虽然pdf格式是开源之,但是好失去分析太费事了,pdf还要分页之类的,现在网上各种文档上传可以在线看多还是pdf,当然也起word,excel之类,其实过多且是移了swf,flex加载swf,这次仅仅说加载pdf,首先先下充斥一个swftools,这个家伙来发号施令执行可转pdf
到dwg 简单命令是 pdf2swf -o 1.swf -s flashversion=9
1.pdf,其中flashversion最好选9以上 ,低版本有时候导出swf
flex加载不出。github上生flexpaper这个组件,flexpaper这个组件就无不仔细说了,还要做flex-iframe.swc这个组件来为此,flexpapaer和flex-iframe.swc地址http://files.cnblogs.com/files/haibalai/FlexPaper.rar。

garbage.png

  这里做成一个组件,熟悉flexview开发的且掌握widget模式,这里xml格式

在使用NSJSONSerialization API转换NSData([JSONStr
dataUsingEncdoing:NSUTF8ENCODING]),通常如JSONStr
字符串格式正确,我们就算得轻松转移格式,NSString to NSDictionary.
假若未确定自己之JSON字符串是否科学,可以品尝google “json在线解析器”

  

时不时在河边走,哪有无湿鞋

1 <?xml version="1.0" encoding="utf-8" ?>
2 <data>
3   <pdf name="aaa" url="http://locahost/FlexPaper/index.html?fileSrc=aaa.pdf"></pdf>
4   <pdf name="bbb" url="http://locahost/FlexPaper/index.html?fileSrc=bbb.pdf"></pdf>
5 </data>

作者就撞个蛋疼的题目:在转JSON, 抛出了”Garbage at
End”错误,中文意思大概是“末尾有破烂”,意思是含有JSON转换无法辨认的字符。(JSON格式验证是绝非问题之)
经过作者一阵煎熬(stackoverflow),最终要找到了解决方案,原因是
因为我的字符串是加密了的,导致解密后底数码加以了一部分 “操作符”
http://baike.baidu.com/view/1112575.htm
ACSII编码中生个32只操作符

  组件:

化解方案:
1.假如是data,先以DATA装成String,采用NSUTF8StringEncoding(系统提供的枚举貌似都可以,因为不是汉语),然后看第二步
2.如果是NSString
yourStr =[yourStr stringByTrimmingCharactersInSet:[NSCharacterSet
controlCharacterSet]];
这会儿有控制符都会吃轮换成空字符。
随着用yourStr转化成NSData(注意与你首先步而所用的编码格式需要一致),然后又开展NSJSONSerialization
操作!

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <viewer:BaseWidget xmlns:esri="http://www.esri.com/2008/ags"
 3                    xmlns:fx="http://ns.adobe.com/mxml/2009"
 4                    xmlns:s="library://ns.adobe.com/flex/spark"
 5                    xmlns:mx="library://ns.adobe.com/flex/mx"
 6                    xmlns:viewer="com.esri.viewer.*"
 7                    xmlns:components="com.esri.viewer.components.*"
 8                    x="600" y="300"
 9                    xmlns:code="http://code.google.com/p/flex-iframe/"
10                    widgetConfigLoaded="basewidget_widgetConfigLoaded()">
11     
12     
13     <fx:Script>
14         <![CDATA[
15                 import com.esri.ags.layers.ArcGISDynamicMapServiceLayer;
16                 import com.esri.viewer.managers.EventBus;
17                 import com.szpl.extension.base.impl.AccessPoint;
18                 import com.szpl.extension.tools.config.ILayerConfig;
19                 import com.szpl.extension.tools.layer.ILayer;
20                 import com.szpl.extension.tools.layer.LayerVisibleChangeEvent;
21                 import flash.events.MouseEvent;
22                 import flash.utils.ByteArray;
23                 import mx.collections.ArrayCollection;
24                 import mx.core.FlexGlobals;
25                 import mx.rpc.events.FaultEvent;
26                 import mx.rpc.events.ResultEvent;
27                 import mx.utils.UIDUtil;
28                 import spark.events.IndexChangeEvent;
29                 
30     
31 
32     
33 
34     
35         var arr:ArrayCollection = new ArrayCollection();
36         protected  function basewidget_widgetConfigLoaded():void
37         {
38             if (configXML)
39             {
40                 
41                 var pdfxmls:XMLList = configXML.pdf;
42                 for each(var pdfxml:XML in pdfxmls)
43                 {
44                     var obj:Object = new Object();
45                     obj.name = String(pdfxml.@name);
46                     obj.url = String(pdfxml.@url);
47                     arr.addItem(obj);
48                 }
49                 list.dataProvider = arr;
50             }
51             if (arr.length > 0)
52             {
53                 list.selectedIndex = 0;
54                 OfficeProject.source = (list.selectedItem as Object).url;
55             }
56         }
57         
58     
59     private function listChangeHandle(event:IndexChangeEvent):void
60     {
61         OfficeProject.source = (list.selectedItem as Object).url;
62     }
63        
64        
65     
66          ]]>
67 </fx:Script>
68     
69 <viewer:WidgetTemplate id="LocateWT" width="980" height="100%" 
70            enableMinimizeButton="false" >
71     
72 <s:HGroup height="100%" width = "100%">
73 <s:List id="list" height="100%" width="150"  change="listChangeHandle(event)" labelField="name">
74     
75 </s:List>
76         
77 <code:IFrame  id="OfficeProject" width="790" height="100%" horizontalScrollPolicy="off" verticalScrollPolicy="off"/>    
78         
79 </s:HGroup>    
80 </viewer:WidgetTemplate>
81  
82 </viewer:BaseWidget>

–EOF–
假使任由专门说明,本站文章都为原创,转载请保留链接,谢谢