JSON格式的字符串文件,如何读取文件内容到NSDictionary



我的应用程序包中有一个文件-"xyz.txt",只有JSON格式的文本。我想打开文本文件的文件路径,将内容读入NSDictionary。怎么做呢?我已经准备好了JSON字符串。只需要初始化到NSdictionary。如果我直接在代码中初始化,我将需要在每个键和值之前使用大量的@。我想避免这种情况。这就是为什么,我把JSON放在一个文件-"xyz.txt"

我有两种方法1.我读取表单文件并使用[[NSDictionary alloc] initWithContentsOfFile:filePath]分配它;2.我将字符串赋值给NSDictionay,其中有很多@。我想避免一直使用@

我知道我们可以通过NSDataid result = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error];

但即使在这种情况下,我们也需要将string初始化为NSData,对所有的键和值都使用@。

任何可以从文本文件中读取json并将其输出赋值给NSDictionary的解决方案

{
"ABC": [
    {
      "id": "01",
      "score": "0.2"
    },
    {
      "id": "02",
      "score": "0.2"
    }
  ],
  "XYZ": [
    {
      "id": "01",
      "score": "0.9"
    },
    {
      "id": "02",
      "score": "0.9"
    }
   ],
  "PQR": [
    {
      "id": "01",
      "score": "0.9"
    },
    {
      "id": "02",
      "score": "0.3"
    },
    {
      "id": "03",
      "score": "0.2"
    }
   ]
}

JSON以字符串形式存储在file -> NSDictionary

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"MyDict" ofType:@"text"];
NSData * myDictData = [NSData dataWithContentsOfFile:filePath];
NSError *error;
NSDictionary * myDictionary = [NSJSONSerialization JSONObjectWithData:myDictData
                                                     options:NSJSONReadingMutableContainers
                                                       error:&error];
if (error != nil)
{
    NSLog(@"Error parsing JSON:n%@",error.userInfo);
    return;
}

使用NSDatadataWithContentsOfFile方法获取文件的数据(文件路径应该是bundle中文件的路径;有一个方法可以从应用程序的主包中获取资源的路径。

然后使用NSJSONSerializationJSONObjectWithData方法从JSON数据中创建一个NSDictionary

相关内容

  • 没有找到相关文章

最新更新