我正在尝试使用我的客户在 iPhone 上制作的网络服务。据他们告诉我,它是使用 WCF 的。问题是我需要向一个方法发送一堆参数,其中一个是一个名为“__type”的键,它需要是字典上的第一个键。我试图争辩说,根据定义,字典不保证键的顺序,但坚持认为这个特定的键必须是字典中的第一个键。从我收集到的信息来看,这个属性就是他们所说的类型提示,它确实必须是字典中的第一个属性。
我有什么办法可以在 iPhone 上做到这一点吗?
我正在尝试使用我的客户在 iPhone 上制作的网络服务。据他们告诉我,它是使用 WCF 的。问题是我需要向一个方法发送一堆参数,其中一个是一个名为“__type”的键,它需要是字典上的第一个键。我试图争辩说,根据定义,字典不保证键的顺序,但坚持认为这个特定的键必须是字典中的第一个键。从我收集到的信息来看,这个属性就是他们所说的类型提示,它确实必须是字典中的第一个属性。
我有什么办法可以在 iPhone 上做到这一点吗?
也许有点晚了,但我会为此推荐SBJson 框架。
通过在 SBJsonwriter 上设置 sortKeys 属性,您的键将按字母顺序排序。大概您的键具有使 __type 成为排序 JSON 中的第一个键的名称。
NSDictionary *unsortedDictionary = [[NSDictionary alloc]
initWithObjectsAndKeys:
@"Doe", @"lastName",
@"Person", @"__type",
@"John",@"firstName",
nil];
SBJsonWriter *writer = [[SBJsonWriter alloc] init];
writer.sortKeys = YES;
NSLog(@"%@",[writer stringWithObject:unsortedDictionary]);
这将产生排序良好的 JSON:
{"__type": "Person","firstName": "John","lastName": "Doe"}