将NSStrings转换为Json

时间:2013-02-02 16:18:42

标签: objective-c

我搜索了很多,我确实找到了很多答案,但不是我需要的具体答案 - 这很简单。

我希望用户输入2 不同 NSString,并从中创建一个json以发送给服务器。

我写了这个:

-(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",

1 个答案:

答案 0 :(得分:4)

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

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

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

-(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;
}

您可以调用此方法,将rfirstName)和klastName)值传递给它。它将构造一个具有所需JSON结构的字典,并具有所需的值。然后,您可以使用NSJSONSerialization的{​​{1}}选择器将字典转换为JSON数据对象(存储在NSData对象中)。然后,您可以将数据发送到服务器!

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