5

我有一些像这种格式的字符串值,

[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 字符串,请提出解决方案。

4

2 回答 2

4

你得到的字符串是有效的 JSON,而你想要的字符串不是。因此,您将无法使用 iOS JSON 库生成无效的 JSON。

您可以使用此在线实用程序测试有效性,

JSONLint

希望有帮助。

更新:问题已被修改为显示有效的 JSON 作为所需的输出。

于 2012-08-27T09:50:17.050 回答
0

您修改后的问题现在是在将其序列化为 JSON 之前操作 NSDictionary、NSString 和 NSArray 对象以获得所需格式的情况。

您需要将原始数据操作到包含键/值对的字典中,

日志 :

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

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

于 2012-08-28T08:26:16.610 回答