如何在iOS5中将NSString转换为JSON格式?

4

我有一些字符串值,格式如下:

[INFO]  [Tue Aug 21 14:54:22 2012]  [ViewController]  [26]  [Hello]  [;]

我希望使用NSJSONSerialization将这些字符串转换为JSON。

我正在使用以下代码进行字符串转换:

 for (i = 0; i < [logArray count]; i++) 
{
    individualLogInfoArray = [[logArray objectAtIndex:i] componentsSeparatedByString:kDelimitterSpace];
    [dictionaryArray addObject:individualLogInfoArray];

}

finalLogDictionary = [NSMutableDictionary dictionaryWithObjectsAndKeys:dictionaryArray,@"Log", nil];
    NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:finalLogDictionary 
                                                   options:NSJSONWritingPrettyPrinted
                                                     error:&error];

NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
NSLog(@"JsonString = %@",jsonString);

然后我得到了这样的输出,
JsonString = {
  "Log" : [
    "[INFO]  [Tue Aug 21 14:54:22 2012]  [ViewController]  [26]  [Hello]  [;]",
    "[DEBUG]  [Tue Aug 21 14:54:22 2012]  [ViewController]  [27]  [hi]  [;]",
    "[INFO]  [Tue Aug 21 14:54:22 2012]  [ViewController]  [28]  [Its  there]  [;]",
    "[PROD]  [Tue Aug 21 14:54:22 2012]  [ViewController]  [29]  [Welcome]  [;]"
  ]
}

但是我想要输出类似于这样的结果:

{
"log": "[INFO]  [Tue Aug 21 14:54:22 2012]  [ViewController]  [26]  [Hello],[INFO]  [Tue Aug 21 14:54:22 2012]  [ViewController]  [26]  [Hello],[INFO]  [Tue Aug 21 14:54:22 2012]  [ViewController]  [26]  [Hello]"

}

我不知道如何生成上述格式的JSON字符串,请提供一个解决方案。

2个回答

4
你获取的字符串是有效的JSON,而你想要的字符串不是。因此,你将无法使用iOS JSON库生成无效的JSON。
你可以使用这个在线工具来测试有效性, JSONLint 希望有所帮助。
更新:问题已经修订为需要有效的JSON作为输出。

感谢您的信息。这是有效的JSON,我不知道如何生成一个JSON字符串。 - Yuvaraj M

0

你修改后的问题现在是关于操作NSDictionary、NSString和NSArray对象以获得所需格式,然后将其序列化为JSON。

你需要将原始数据转换为一个包含键/值对的字典,

日志:

...然后将其序列化为JSON。

在循环中添加每个logArray项的对象时,可以使用所需格式进行appendString。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接