我需要从NSString创建一个JsonString,而不需要ObjC中的任何键。 所有教程都讨论了NSDictionary或NSData的序列化。
我的字符串就像@“fr-FR”。 我正在寻找的结果就像@“{”fr-FR“}”,但动态。 不能自己做,因为我需要为不同类型的论点做同样的事情。
提前致谢:)
答案 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所需的特殊情况(例如引号和诸如此类)所需的转义。