Iphone 在iOS中将字典的NSArray转换为JSON数组
我需要以Iphone 在iOS中将字典的NSArray转换为JSON数组,iphone,json,cocoa,cocoa-touch,nsarray,Iphone,Json,Cocoa,Cocoa Touch,Nsarray,我需要以JSON数组格式向服务器发送NSArray。如何将其转换为JSON。这是我必须通过的NSArray示例 array([0] => array('latitude'=>'10.010490', 'longitude'=>'76.360779', 'altitude'=>'30.833334', 'timestamp'=>'11:17:23',
JSON
数组格式向服务器发送NSArray
。如何将其转换为JSON
。这是我必须通过的NSArray
示例
array([0] => array('latitude'=>'10.010490',
'longitude'=>'76.360779',
'altitude'=>'30.833334',
'timestamp'=>'11:17:23',
'speed'=>'0.00',
'distance'=>'0.00');
[1] => array('latitude'=>'10.010688',
'longitude'=>'76.361378',
'altitude'=>'28.546305',
'timestamp'=>'11:19:26',
'speed'=>'1.614',
'distance'=>'198.525711')
)`
所需的格式如下
[
{ "latitude":"10.010490",
"longitude":"76.360779",
"altitude":"30.833334",
"timestamp":"11:17:23",
"speed":"0.00",
"distance":"0.00"
},
{
"latitude":"10.010688",
"longitude":"76.361378",
"altitude":"28.546305",
"timestamp":"11:19:26",
"speed":"1.614",
"distance":"198.525711"
}
]
有人有办法吗?提前感谢。您可以使用iOS的或使用外部库,例如,将数据转换为JSON我建议使用
转换一个NSMutableArray
就像NSString*jsonString=[yourArray-JSONRepresentation]一样简单代码>
编辑:Jack Farnandish是对的,您必须先将其转换为NSDictionary,然后才能将其转换为Json。在我的示例中,NSMutableArray必须包含字典。数组仅用于在字符串的开头和结尾创建方括号 首先,您必须将您的结构更改为NSDictionary
类和NSArray
包含NSDictionary
对象,然后在iOS 5中尝试JSONKit序列化,其效果优于标准的NSJSONSerialization
导入
#import <JSONKit/JSON.h>
NSArray *array = // Your array here.
NSString *json = [array JSONString];
NSLog(@"%@", json);
NSArray*array=//这里是您的数组。
NSString*json=[array JSONString];
NSLog(@“%@”,json);
在我和作者的基准测试中,性能明显优于和其他人。您所调用的服务是RESTful服务吗
NSDictionary *firstJsonDictionary = [NSDictionary dictionaryWithObjectsAndKeys:
@"10.010490", @"latitude",
@"76.360779", @"longitude",
@"30.833334", @"altitude",
@"11:17:23", @"timestamp",
@"0.00", @"speed",
@"0.00", @"distance",
nil];
NSDictionary *secondJsonDictionary = [NSDictionary dictionaryWithObjectsAndKeys:
@"10.010490", @"latitude",
@"76.360779", @"longitude",
@"30.833334", @"altitude",
@"11:17:23", @"timestamp",
@"0.00", @"speed",
@"0.00", @"distance",
nil];
NSMutableArray * arr = [[NSMutableArray alloc] init];
[arr addObject:firstJsonDictionary];
[arr addObject:secondJsonDictionary];
NSData *jsonData2 = [NSJSONSerialization dataWithJSONObject:arr options:NSJSONWritingPrettyPrinted error:&error];
NSString *jsonString = [[NSString alloc] initWithData:jsonData2 encoding:NSUTF8StringEncoding];
NSLog(@"jsonData as string:\n%@", jsonString);
如果是这样,我强烈建议使用RestKit。它执行对象序列化/反序列化。它还处理所有网络基础。非常有价值,并且维护良好。检查教程,iOS 5.0中的JSON已清楚解释(序列化、反序列化)。最简单、最好的方法强>
要将NSArray或NSMutableArray转换为jsonString,可以先将其转换为NSData,然后再将其转换为NSString。使用此代码
NSData* data = [ NSJSONSerialization dataWithJSONObject:yourArray options:NSJSONWritingPrettyPrinted error:nil ];
NSString *jsonString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
它帮助了我,希望它也能帮助你。祝你一切顺利 它对我有效,但我希望以数组格式响应,而不是字符串格式。内联代码[{“纬度”:“10.010490”,“经度”:“76.360779”,“高度”:“30.833334”,“时间戳”:“11:17:23”,“速度”:“0.00”,“距离”:“0.00”},{“纬度”:“10.010688”,“经度”:“76.361378”,“高度”:“28.546305”,“时间戳”:“11:19:26”,“速度”:“1.614”,“距离”:“198.525711”}]“您只能以数组格式获得它。这是问题标题的正确答案。谢谢。公认的答案显示了一系列字典使用框架完成如此简单的任务并不是一个好主意。Update 2016 RestKit不再是一个维护框架。