带有 JSON 格式字符串的文件,如何将文件内容读入 NSDictionary
File with string in JSON format , how to read filecontent into NSDictionary
我的应用程序包中有一个文件-"xyz.txt",其中只有 JSON 格式的文本。
我想打开文本文件的文件路径并将内容读取到 NSDictionary。怎么做。
我已经准备好 JSON 字符串。只需要初始化 NSdictionary。如果我直接在代码中初始化,我会在每个键和值之前需要很多@。我想避免这种情况。这就是原因,我把 JSON 放在一个文件中-"xyz.txt"
我有两个办法——
1.I 读取表单文件并使用 [[NSDictionary alloc] initWithContentsOfFile:filePath] 分配它;
2.I 将带有很多@ 的字符串分配给NSDictionay。
我想避免一直使用@
我知道我们可以通过 NSData 来做
id result = [NSJSON序列化JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error];
但即使在那种情况下,我们也需要将所有键和值的字符串初始化为 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"
}
]
}
使用NSData
的dataWithContentsOfFile
方法获取文件的数据(文件路径应该是包中文件的路径;有一种方法可以让你得到一个文件的路径来自应用程序主包的资源)。
然后使用 NSJSONSerialization
的 JSONObjectWithData
方法从 JSON 数据创建一个 NSDictionary
。
JSON in string stored in 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;
}
我的应用程序包中有一个文件-"xyz.txt",其中只有 JSON 格式的文本。 我想打开文本文件的文件路径并将内容读取到 NSDictionary。怎么做。 我已经准备好 JSON 字符串。只需要初始化 NSdictionary。如果我直接在代码中初始化,我会在每个键和值之前需要很多@。我想避免这种情况。这就是原因,我把 JSON 放在一个文件中-"xyz.txt"
我有两个办法—— 1.I 读取表单文件并使用 [[NSDictionary alloc] initWithContentsOfFile:filePath] 分配它; 2.I 将带有很多@ 的字符串分配给NSDictionay。 我想避免一直使用@
我知道我们可以通过 NSData 来做 id result = [NSJSON序列化JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error];
但即使在那种情况下,我们也需要将所有键和值的字符串初始化为 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"
}
]
}
使用NSData
的dataWithContentsOfFile
方法获取文件的数据(文件路径应该是包中文件的路径;有一种方法可以让你得到一个文件的路径来自应用程序主包的资源)。
然后使用 NSJSONSerialization
的 JSONObjectWithData
方法从 JSON 数据创建一个 NSDictionary
。
JSON in string stored in 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;
}