【发布时间】:2014-05-27 14:26:49
【问题描述】:
我正在从 WebService 获取一些数据(这是一个 json 数据)
Webservice 发送的确切输入是:
[
{
"id": "C-62",
"title": "testing testing",
"type": "image",
"thumb": "",
"LinkId": "ABC",
"fileSize":1074,
"level":0,
},
{
"id": "C-63",
"title": "testing ab testing",
"type": "audio",
"thumb": "",
"LinkId": "ABCD",
"fileSize":1074,
"level":1,
}
]
正如我在输入数据中看到的,只有 fileSize 是整数类型的键值对 其余都是字符串格式。
当我使用以下代码将该 NSData 转换为 NSArray 时
NSArray *dataArray = nil;
dataArray = [NSJSONSerialization JSONObjectWithData:data
options:0
error:nil];
我得到这样的“dataArray”
{
"id": "C-62",
"title": "testing testing",
"type": image,
"thumb": "",
"LinkId": "ABC",
"fileSize":1074,
"level":0,
},
{
"id": "C-63",
"title": "testing ab testing",
"type": audio,
"thumb": "",
"LinkId": "ABCD",
"fileSize":1074,
"level":1,
}
“type”键值对变为“int”。所有其他键值对都处于相同状态。
请帮助我将输入数据转换为与 Web 服务发送的相同格式。 我正在使用 iOS 7。
【问题讨论】:
-
“类型”值在我看来是一个 NSString。 (当你对一个 NSDictionary 进行 NSLog 记录时,不包含空格或“奇数”字符的字符串值将被打印,并且不包含双引号。)
-
事实上,知道了 NSLog 输出的特征,我可以看出你的底部列表不是 NSLog 输出的复制/粘贴,而只是编辑的 JSON 文本。
-
@HotLicks 感谢您的回复。你的第一条评论真的很有帮助。您可以将其发布为答案。真正的问题是。在某些情况下,'fileSize' 是任意大的。需要被视为 long long int。