1

我搜索了很多,我确实找到了很多答案,但不是我需要的特定答案——这很简单。

我想采用 2 个不同 NSString的用户类型,并从它们创建一个 json 以发送到 server 。

我写了这个:

-(id)stringToJason:(NSString*)stringData 
{
    NSData *data = [stringData dataUsingEncoding:NSUTF8StringEncoding];
    id json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
    return json;
}

但是有些东西我不明白。这将 1 个 nsstring 作为 json 返回。

我将如何取 2 个不同NSStrings的,并从它们一起创建 json?可以说:(userName:me 当每个都来自文本字段时)

json 应该看起来像:

"Username": "me",
    "Firstname": "r",
    "Lastname": "k",
4

1 回答 1

4

如果您想生成如下所示的 JSON:

{
   "Username":"me",
   "Firstname":"r",
   "Lastname":"k"
}

Whererk是从文本字段中获取的值,您可以按照以下方式编写一个方法:

-(NSData*)jsonFromFirstName:(NSString*)firstName andLastName:(NSString*)lastName
{
    NSDictionary* dic = @{@"Username" : @"me", @"Firstname" : firstName, @"Lastname" : lastName};
    // In production code, _check_for_errors!
    NSData* json = [NSJSONSerialization dataWithJSONObject:dic options:0 error:nil];
    return json;
}

您将调用此方法,将r( firstName) 和k( lastName) 值传递给它。它将构造一个具有所需 JSON 结构和所需值的字典。然后,您将使用NSJSONSerialization'-dataWithJSONObject:options:error选择器将字典转换为 JSON 数据对象(存储在 NSData 对象中)。然后,您可以将数据发送到服务器!

在方法的第一行创建的字典可以任意扩展,甚至可以传入非字符串(例如数字、数组,甚至其他字典!)。

于 2013-02-02T16:51:42.517 回答