IOS - ObjC - 来自NSString的JSONString

时间:2012-05-04 09:10:43

标签: objective-c ios json nsstring nsdictionary

我需要从NSString创建一个JsonString,而不需要ObjC中的任何键。 所有教程都讨论了NSDictionary或NSData的序列化。

我的字符串就像@“fr-FR”。 我正在寻找的结果就像@“{”fr-FR“}”,但动态。 不能自己做,因为我需要为不同类型的论点做同样的事情。

提前致谢:)

4 个答案:

答案 0 :(得分:2)

为了达到你要求的结果(即使它不是一个合适的JSON)你可以尝试这样的事情:

NSString *myString = @"fr-FR"; // Or whatever
NSString *result = [NSString stringWithFormat:@"{\"%@\"}", myString];

答案 1 :(得分:1)

您需要使用JSON框架/库,例如TouchJSON,然后您可以执行以下操作来编码NSString

theData = [[CJSONSerializer serializer] serializeObject:theString
                                                  error:&theError];

(来自demo code here)。

答案 2 :(得分:1)

如果您在IOS 5 +上开发

,则可以使用NSJSONSerialization类

使用您的字符串

创建数据
NSString *myString = @"fr-FR"; // Or whatever
NSString *result = [NSString stringWithFormat:@"{%@}", myString];
NSData* data=[result dataUsingEncoding:NSUTF8StringEncoding];

然后使用

+ (id)JSONObjectWithData:(NSData *)data options:(NSJSONReadingOptions)opt error:(NSError **)error

创建JSON对象

(只是键入,未测试)

答案 3 :(得分:0)

再次阅读json规范后,恕我直言(http://www.json.org){“string”}无效json,您在c#中使用的代码产生无效结果。但是,如果您需要与以这种方式运行的c#代码进行通信,则应该使用JSON库对字符串本身进行编码,然后 将其打包为花括号。这样,如果您只是手动添加引号和大括号,就可以获得JSON所需的特殊情况(例如引号和诸如此类)所需的转义。