Objective c SBJSON失败,json包含二进制数据
我正在使用web服务,并使用sbjson解析接收到的数据,如下所示:Objective c SBJSON失败,json包含二进制数据,objective-c,ios,json,sbjson,Objective C,Ios,Json,Sbjson,我正在使用web服务,并使用sbjson解析接收到的数据,如下所示: NSDictionary *response = [[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]JSONValue]; 它运行良好,但在包含二进制数据(application/pdf)的json中失败 我在控制台里找到了这个: -JSONValue failed. Error trace is: ( "Error Domain=or
NSDictionary *response = [[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]JSONValue];
它运行良好,但在包含二进制数据(application/pdf)的json中失败
我在控制台里找到了这个:
-JSONValue failed. Error trace is: (
"Error Domain=org.brautaset.JSON.ErrorDomain Code=6 \"Invalid high character in surrogate pair\" UserInfo=0x1e0e1700 {NSLocalizedDescription=Invalid high character in surrogate pair}",
"Error Domain=org.brautaset.JSON.ErrorDomain Code=6 \"Broken unicode character\" UserInfo=0x1e0e1740 {NSUnderlyingError=0x1e0e1720 \"Invalid high character in surrogate pair\", NSLocalizedDescription=Broken unicode character}",
"Error Domain=org.brautaset.JSON.ErrorDomain Code=3 \"Expected value while parsing array\" UserInfo=0x1e0e1780 {NSUnderlyingError=0x1e0e1760 \"Broken unicode character\", NSLocalizedDescription=Expected value while parsing array}",
"Error Domain=org.brautaset.JSON.ErrorDomain Code=3 \"Object value expected for key: content\" UserInfo=0x1e0e17c0 {NSUnderlyingError=0x1e0e17a0 \"Expected value while parsing array\", NSLocalizedDescription=Object value expected for key: content}",
"Error Domain=org.brautaset.JSON.ErrorDomain Code=3 \"Object value expected for key: params\" UserInfo=0x1e0e1800 {NSUnderlyingError=0x1e0e17e0 \"Object value expected for key: content\", NSLocalizedDescription=Object value expected for key: params}",
"Error Domain=org.brautaset.JSON.ErrorDomain Code=3 \"Object value expected for key: request\" UserInfo=0x1e0e18d0 {NSUnderlyingError=0x1e0e1890 \"Object value expected for key: params\", NSLocalizedDescription=Object value expected for key: request}"
)
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[0]'
*** First throw call stack:
(0x3397d2a3 0x3314f97f 0x338ce55f 0x339050d3 0x576c1 0x5c631 0x5d9bf 0x389a7ef5 0x388e79f1 0x388e790d 0x36bf65df 0x36bf5ccb 0x36c1e133 0x338c374d 0x36c1e593 0x36b8215d 0x33952683 0x33951ee9 0x33950cb7 0x338c3ebd 0x338c3d49 0x3462c2eb 0x36509301 0x46ab9 0x38548b20)
libc++abi.dylib: terminate called throwing an exception
(lldb)
现在我想知道如何解决它而不移动到另一个json库。
还有其他人处理过json(包括二进制)吗?
谢谢 From:“JSON是一种文本格式”。Base64对二进制数据进行编码
请参阅“JSON是一种文本格式”中的“JSON字符串中的二进制数据”。Base64对二进制数据进行编码
请参阅“JSON字符串中的二进制数据”NSString*ResponseST=[[NSString alloc]initWithData:Data encoding:NSUTF8StringEncoding];测试json字符串您的问题不是客户端的json库。这是由web服务生成的无效JSON数据。那个麻烦的JSON来自google api。。。好啊没什么可说的了。谢谢大家。我将向谷歌报告这一点。不幸的是,谷歌API有时会产生无效的JSON。NSString*responsest=[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];测试json字符串您的问题不是客户端的json库。这是由web服务生成的无效JSON数据。那个麻烦的JSON来自google api。。。好啊没什么可说的了。谢谢大家。我将向谷歌报告这一点,不幸的是,谷歌API有时会产生无效的JSON。