我有一个来自服务器的json字符串,该字符串是一个包含字典数组的字典。每个字典代表一个对象,我需要将其转换为NSString并从中获取md5哈希。 所以看起来像这样: - dict - >数组 - > obj1(dict),obj2(dict)e.t.c ... 这一切都很好,但是在服务器的json字符串中我有一个给定的订单。所以当我从数组中获取obj字典时,顺序是不正确的,当然,我的每个对象的md5都不等于服务器上的md5,这是在服务器上制作的。
将json字符串转换为NSDictionary时可以选择保存顺序吗? 我也尝试过M13OrderedDictionary lib,但没有成功。 我做的代码:
- (void)mainMethod
{
NSDictionary *dict = [jsonString objectFromJSONString];
NSArray *arr = dict[@"params"];
for (NSDictionary *obj in arr)
{
NSString *jsonString = [package JSONString];
NSString *md5 = [jsonString MD5];
[arrayOfMD5 addObject:md5];
}
}
// Categories in other classes
- (id)objectFromJSONString
{
NSError *serializationError = nil;
id result = [NSJSONSerialization JSONObjectWithData:[self dataUsingEncoding:NSUTF8StringEncoding]
options:0
error:&serializationError];
if (serializationError)
{
DDLogError(@"Failed unserialising JSON: %@", serializationError.localizedDescription);
}
return result;
}
- (NSString *) JSONString
{
NSError *serializationError = nil;
NSData *data = [NSJSONSerialization dataWithJSONObject:self options:0 error:&serializationError];
if (serializationError)
{
DDLogError(@"Failed serialising JSON: %@", serializationError.localizedDescription);
}
return [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
}