gpt4 book ai didi

iphone - 在 iOS 中创建 JsonString

转载 作者:行者123 更新时间:2023-12-01 17:16:29 27 4
gpt4 key购买 nike

我是 iOS 新手。我创建了一个 JSON NSDictionary像这样:

NSArray *keys = [NSArray arrayWithObjects:@"User", @"Password", nil];
NSArray *objects = [NSArray arrayWithObjects:@"Ali", @"2020", nil];
NSDictionary *jsonDictionary = [NSDictionary dictionaryWithObjects:objects forKeys:keys];

然后我可以将其转换为 NSString通过两种机制:

1)
NSError *error; 
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:jsonDictionary options:0 error:&error];

NSString *jsonString = nil;
if (! jsonData) {
NSLog(@"Got an error: %@", error);
} else {
jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
}

2)
NSString *jsonString = [jsonDictionary JSONRepresentation];

在第二种方式中,我得到了这个 warning :
Instance method '-JSONRepresentation' not found (return type defaults to 'id')

但是当我运行该项目时,两种机制都可以正常工作:
NSLog(@"Val of json parse obj is %@",jsonString); 

您知道如何以第二种方式删除警告吗?

我的主要目标是POST使用 RESTful Web 服务将此 json 字符串传输到外部数据库。
基本上考虑到我的主要目标,哪种方式更好?

最佳答案

您应该使用 NSJSONSerialization只要您的“目标受众”是 iOS5+,它就更快并且直接与 iOS SDK 一起提供

要将数据发布到您的网络服务,您需要按照这些方式创建一个请求......

NSDictionary * postDictionary = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:@"value1", @"value2", nil]
forKeys:[NSArray arrayWithObjects:@"key1", @"key2", nil]];

NSError * error = nil;
NSData * jsonData = [NSJSONSerialization dataWithJSONObject:postDictionary options:NSJSONReadingMutableContainers error:&error];

NSMutableURLRequest * urlRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"your_webservice_post_url"]];
[urlRequest setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[urlRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[urlRequest setHTTPMethod:@"POST"];
[urlRequest setHTTPBody:jsonData];

NSURLConnection * myConnection = [[NSURLConnection alloc] initWithRequest:urlRequest delegate:self startImmediately:YES];

请阅读 NSURLConnectionDelegate协议(protocol)。

关于iphone - 在 iOS 中创建 JsonString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11882696/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com