簡體   English   中英

如何在ios5中將NSString轉換為JSON格式?

[英]How to convert NSString as JSON Format in ios5?

我有一些像這種格式的字符串值,

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

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

您可以使用此在線工具測試有效性,

JSONLint

希望有所幫助。

更新:問題已經過修訂,以顯示有效的JSON作為必需的輸出。

您修改后的問題現在是操作NSDictionary,NSString和NSArray對象以在將其序列化為JSON之前獲取所需格式的情況。

您需要將原始數據操作到包含鍵/值對的字典中,

日志:

...然后將其序列化為JSON。

在為每個logArray項添加對象的循環中,您可以使用所需格式appendString。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM