gpt4 book ai didi

iOS - NSJSONSerialization 抛出一些非常奇怪的错误

转载 作者:行者123 更新时间:2023-12-01 17:51:06 26 4
gpt4 key购买 nike

好的,我正在使用以下代码获取 JSON 文件

- (void)dataRequest {
NSURL *dataURL = [NSURL URLWithString:@"link to JSON file"];
NSURLRequest *dataRequest = [NSURLRequest requestWithURL:dataURL];
NSURLConnection *dataConnection = [NSURLConnection connectionWithRequest:dataRequest delegate:self];
}

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
NSError *dataError;

_dataDictionary = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&dataError];

if (_dataDictionary == nil) {
NSLog(@"JSON error: %@", dataError);
}
}

Xcode 似乎随机想要正确解析数据,但有时它会抛出这些看似随机的错误(前两个经常一起出现在日志中):

2015-05-25 18:09:35.506 UserProject[703:13236] JSON error: Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (Unexpected end of file while parsing object.) UserInfo=0x7fb5735775b0 {NSDebugDescription=Unexpected end of file while parsing object.}

2015-05-25 18:09:35.510 UserProject[703:13236] JSON error: Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (JSON text did not start with array or object and option to allow fragments not set.) UserInfo=0x7fb57357d3b0 {NSDebugDescription=JSON text did not start with array or object and option to allow fragments not set.}

2015-05-25 18:12:56.577 UserProject[835:15617] JSON error: Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (Unescaped control character around character insert recurring but seemingly random number here.) UserInfo=0x7fbb71e67e10 {NSDebugDescription=Unescaped control character around character insert recurring but seemingly random number here.}



我也有一个解析成功的问题,但是如果我在我的 JSON 中更改这一行
"Title": "Projet Cars”,


"Title": "Projet CARS”,

然后 Xcode 抛出这个错误:

2015-05-25 18:12:56.577 UserProject[835:15617] JSON error: Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (Unescaped control character around character 67.) UserInfo=0x7fbb71e67e10 {NSDebugDescription=Unescaped control character around character 67.}



字符 67 是“标题”后面的两个空格:“Projet CARS”
"Title": "Projet CARS”  < character 67 here

将行改回 "Title": "Projet Cars"不会删除错误,但是错误仍然存​​在,直到我完全删除 "Title": "Projet Cars"和对象中的其他条目,然后等待一段时间在我把它放回去让它再次工作之前。当我尝试将 "Title": "Projet Cars"更改为 "Title": "Projet CARS"后,在等待一段时间后(从我拥有的另一个文件)粘贴它,它再次中断并出现上述错误。

这个错误也发生了多次,根本没有改变任何东西,只需在模拟器中重新运行应用程序就足以让 Xcode 提示一个看似随机的字符。例如,它可能工作得很好,然后当重新运行应用程序时,它说在 1547 有问题,然后当重新运行应用程序时,它说是字符 5769 导致了问题,然后它会一直说它的字符 5769 在哪里错误从这里开始。问题是它总是在空白处或带有普通字符(如字母和数字)的文本中间,不会引起问题。

我的 JSON 是这样构建的:
{
"Array of objects": [
{
"Title": "entry 1",
"Description": "entry 2",
"Date": "entry 3",
"DateText": "entry 4",
"Picture": "entry 5",
"Author": "entry 6",
"Genre": "entry 7",
"Features": "entry 8",
"AltPicture": "entry 9",
"Extra": "entry 10",
"Sources": "entry 11",
"Video": "entry 12"
},
{
"Title": "entry 1",
"Description": "entry 2",
"Date": "entry 3",
"DateText": "entry 4",
"Picture": "entry 5",
"Author": "entry 6",
"Genre": "entry 7",
"Features": "entry 8",
"AltPicture": "entry 9",
"Extra": "entry 10",
"Sources": "entry 11",
"Video": "entry 12"
}

// And so on..
]
}

我使用 UTF-8 保存我的 JSON,并使用 DropBox 中的公用文件夹托管它。

我认为这可能是因为字节顺序标记,但是我使用 TextEdit,默认情况下它不会使用 BOM 保存文件。

有没有人知 Prop 体是怎么回事?...

编辑 :好的,所以这里有两个问题,如答案中所述,第一个是使用适合编程的文本编辑器,另一个是修复我的代码以进行实际下载(我的帖子中的第一个代码示例)。
- 感谢您的所有回答,我会看看您的答案并修复我的代码。

最佳答案

这不是合法的 JSON 语法:

"Title": "Projet Cars”
^

它应该是:
"Title": "Projet Cars"

关于iOS - NSJSONSerialization 抛出一些非常奇怪的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30443005/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com