Ios JSON格式:以正确的顺序获取输出
通用任务,将字符串转换为JSON格式。是的,很简单,关于这个问题有很多答案 对我来说,不容易理解的是,为什么我得到的顺序与我在NSDictionary中放置pair对象的顺序不同 这就是我写的代码:Ios JSON格式:以正确的顺序获取输出,ios,objective-c,json,nsdictionary,nsdata,Ios,Objective C,Json,Nsdictionary,Nsdata,通用任务,将字符串转换为JSON格式。是的,很简单,关于这个问题有很多答案 对我来说,不容易理解的是,为什么我得到的顺序与我在NSDictionary中放置pair对象的顺序不同 这就是我写的代码: -(NSString*)createJSONstring { //http://www.raywenderlich.com/5492/working-with-json-in-ios-5 NSDictionary* dictionary = [NSDictionary diction
-(NSString*)createJSONstring
{
//http://www.raywenderlich.com/5492/working-with-json-in-ios-5
NSDictionary* dictionary = [NSDictionary dictionaryWithObjectsAndKeys:
@"<xx3-xxxx>",@"from",
@"<xxx-xxx>",@"to",
@"<Bla bla bla>",@"message",
@"<2000>",@"posixtime", nil];
NSArray* notifications = [NSArray arrayWithObjects:dictionary, nil];
NSError *writeError = nil;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:notifications options:NSJSONWritingPrettyPrinted error:&writeError];
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
NSLog(@"JSON Output: %@", jsonString);
return jsonString;
}
-(NSString*)createJSONstring
{
//http://www.raywenderlich.com/5492/working-with-json-in-ios-5
NSDictionary*dictionary=[NSDictionary dictionary WithObjectsAndKeys:
@“,@”来自“,
@“,@”至“,
@“,@”消息,
@“,@“posixtime”,无];
NSArray*通知=[NSArray arrayWithObjects:dictionary,nil];
n错误*writeError=nil;
NSData*jsonData=[NSJSONSerialization dataWithJSONObject:通知选项:NSJSONWriting预打印错误:&writeError];
NSString*jsonString=[[NSString alloc]initWithData:jsonData编码:NSUTF8StringEncoding];
NSLog(@“JSON输出:%@”,jsonString);
返回jsonString;
}
我希望得到这样的结果:
{
"from" : "<xx3-xxxx>"
"to" : "<xxx-xxx>",
"message" : "<Bla bla bla>",
"posixtime" : "<2000>",
}
{
“发件人”:”
“致”:“,
“电文”:“,
“posixtime”:“,
}
但我得到了一个不同的订单:
{
"posixtime" : "<2000>", <----- INCORRECT
"to" : "<xxx-xxx>",
"message" : "<Bla bla bla>",
"from" : "<xx3-xxxx>" <----- INCORRECT
}
{
“posixtime”:“,”一个NSDictionary
中的键/值对没有顺序。你可以按顺序添加它们,但字典中没有顺序信息。因此,当你创建JSON时,它会以任意顺序出现
如果您需要以特定顺序显示内容,那么您不应该使用字典,或者应该按照您想要的顺序将项目流式传输到JSON中(例如,使用).通常,对于字典,顺序是不相关的,因为您将通过键访问值。您能否扩展要求键控项顺序一致的用例?JSON“对象”中键/值对的顺序不保证保留。来自JSON.org:“对象是一组无序的名称/值对。”当然,另一端的解析器也不能保证保持顺序。JSON“object”中的条目应该被认为是无序的。@HotLicks,我同意它们应该(被认为是无序的),但有时您需要与另一方进行整合,他们为订单赋予了意义-这总是很有趣的…如果另一方要求以特定的顺序输入条目,那么它可能还做了很多其他错误的事情。感谢您的回答:-)
[NSDictionary dictionaryWithObjectsAndKeys: //I want it to be:
@"<xx3-xxxx>",@"from", //1st
@"<xxx-xxx>",@"to", //2nd
@"<Bla bla bla>",@"message", //3rd
@"<2000>",@"posixtime", nil]; //4th