gpt4 book ai didi

ios - 如何从 Objective-C 中的文本文件解析 JSON 数据

转载 作者:行者123 更新时间:2023-11-29 12:06:18 25 4
gpt4 key购买 nike

我知道,JSON 解析问题被问了一遍又一遍,但我仍然找不到任何答案。
我一直在尝试使用 NSJSONSerialization 读取和解析文本 JSON 文件,但无济于事。
我试过使用来自 NSString 的相同 JSON 数据,它确实有效。
这是代码:

NSError      *error;

NSString *jsonString1 = [NSString stringWithContentsOfFile:jsonFilePath
encoding:NSUTF8StringEncoding
error:&error];
NSData *jsonData1 = [jsonString1 dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *jsonObject1 = [NSJSONSerialization JSONObjectWithData:jsonData1
options:0
error:&error];

NSString *jsonString2 = @"{\"key\":\"value\"}";
NSData *jsonData2 = [jsonString2 dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *jsonObject2 = [NSJSONSerialization JSONObjectWithData:jsonData2
options:0
error:&error];

- 文本文件包含一行:{"key":"value"}
- jsonString1 = @"{"key":"value"}"
- jsonString2 = @"{\"key\":\"value\"}"
- jsonData1 的大小为 23 个字节
- jsonData2 的大小为 15 个字节
- jsonObject1 为零,我收到错误代码 3840
- jsonObject2 是一个有效的字典

似乎问题出在读取文件上,因为 NSStrings 和 NSDatas 不同,但我在这里做错了什么,我该如何解决?

最佳答案

您的文件很可能包含一些触发失败的不可打印字符(例如\0)。打印错误消息会告诉您第一个无效字符出现在什么位置。

例如,尝试打印 "{\"key\":\u{0000}\"value\"}",您似乎会得到一个有效的 JSON,但解码失败.

关于ios - 如何从 Objective-C 中的文本文件解析 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34883715/

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