当前位置: 首页 > 面试题库 >

iOS 5 JSON解析结果可可错误3840

闻人梓
2023-03-14
问题内容

我很难在iOS 5上解析以下JSON字符串。

{"States": [{"Name": "Arizona","Cities": [{"Name": "Phoenix"}]},{"Name": "California","Cities": [{"Name": "Orange County"},{"Name": "Riverside"},{"Name": "San Diego"},{"Name": "San Francisco"}]},{"Name": "Nevada","Cities": [{"Name": "Las Vegas"}]}]}

这是我的代码:

- (void) parseJson {
NSError *jsonError = nil;
NSData *jsonData = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Locations-JSON" ofType:@"rtf"]];

if (jsonData) {
    NSDictionary *jsonObjects = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&jsonError];

    if (jsonError) {
        NSLog(@"JSON Error: %@", [jsonError localizedDescription]);

        return;
    }

    NSLog(@"%@", jsonObjects);
}
}

我不断收到此错误:

JSON Error: The operation couldn’t be completed. (Cocoa error 3840.)

我很乐意为此提供一些帮助,因为我明确并且无力解决此问题。


问题答案:

让我感到不正确的一件事是:

[[NSBundle mainBundle] pathForResource:@"Locations-JSON" ofType:@"rtf"]

您的数据是RTF文件?它应该是一个txt文件(或任何其他类型的纯文本文件)。RTF文件通常包含文本格式数据,如下所示:

{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf470
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;}
\margl1440\margr1440\vieww10800\viewh8400\viewkind0
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural

\f0\fs24 \cf0 \{"States": [\{"Name": "Arizona","Cities": [\{"Name": "Phoenix"\}]\},\{"Name": "California","Cities": [\{"Name": "Orange County"\},\{"Name": "Riverside"\},\{"Name": "San Diego"\},\{"Name": "San Francisco"\}]\},\{"Name": "Nevada","Cities": [\{"Name": "Las Vegas"\}]\}]\}}

当我读到 的是 作为一个数据和尝试解析它作为JSON,我得到了3840的错误你看到。该错误的说明说:

数据已损坏,无法读取。(在字符2周围的对象中没有值的字符串键。)

因此,对我来说,您实际上没有JSON。您有RTF数据。



 类似资料:
  • 如下代码为什么输出的结果不是1,2,3,4? 而是输出了错误的结果:1803629872 77304476 1803629872 0

  • 我试图找到解决办法,但没有成功。 我正在尝试使用“datetime”类型运行X-editable,以便为用户提供datetimepicker。引导DateTimePicker与同一页面上的其他元素配合良好,因此DTP不会出现问题。 尽管选择了“data-*”的方式,或者将所有内容都推送到JS,但我总是会得到一个错误 当我改变从min到正常JS我跟踪它到: 我不知道怎么解决它。我甚至从x-edita

  • null 项目生成错误:无法解析得父POM无法传输org.springframework.boot:spring-boot-starter-parent:POM:2.0.0.来自http://repo.maven.apache.org/maven2/得版本已缓存在本地存储库中,在经过artie得更新间隔或强制更新之前,将不会重新尝试解析.原始错误:无法传输项目org.springframework

  • 我正在使用JAXB/MOXY解组包含约50个此类对象的XML文件: BR

  • 这是我第一个使用spring Boot的项目。因此我尝试用父级更新pom.xml,如下所示: 然而,我在行中出现了一个错误: 项目生成错误:com.in28minutes的父POM不可解析。springboot:first-springboot-project:0.0.1-snapshot:找不到项目org.springframework.boot:spring-boot-starter-pare

  • 我试图从我的数据库中得到一些数据,但我不会得到正确的结果。 我的方法: 所以应该有一个确切的结果,但我从控制台得到的全部是:日期的范围是从今天(6月12日-2周) CEST 2012年Tue Jun 12 14:49:11 2012年东部时间5月30日星期三14:49:11