我知道如何创建虚拟json数据并在控制台中打印它们,如下面的代码:
NSArray *jsonObject;
jsonObject = @[@{@"Id1":@"mad",
@"people1":@"300"},
@{@"Id2":@"normal",
@"people2":@"9",@"total2":@"300"}];
NSError *err;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:jsonObject options:NSJSONWritingPrettyPrinted error:nil];
NSArray *jsonArray = [NSJSONSerialization JSONObjectWithData:jsonData options: NSJSONReadingMutableContainers error: &err];
NSLog(@"%@,%@",jsonArray);
我有一个文件名 Areafiles.JSON 。在那个文件中我有一些json数据。我直接拖放我的项目。
如何在我的控制台中阅读和打印,就像上面的例子一样?
答案 0 :(得分:1)
对于Swift:
假设您的项目中有一个名为 a.json 的Json文件,如下所示:
{
"person":[
{
"name": "Bob",
"age": "16",
"employed": "No"
},
{
"name": "Vinny",
"age": "56",
"employed": "Yes"
}
]
}
现在只需按照以下三个简单步骤进行操作:
现在您可以随意使用Json对象:
// Get the path to the JSON File
if let path = NSBundle.mainBundle().pathForResource("a", ofType: "json")
{
// Load the contents of the file into an NSData object
if let jsonData = NSData(contentsOfFile: path)
{
do {
// Serialize the jsonData object to make a Json object
let jsonResult = try NSJSONSerialization.JSONObjectWithData(jsonData, options: NSJSONReadingOptions.AllowFragments)
if let persons : NSArray = jsonResult["person"] as? NSArray
{
// Print the contents of your file
print(persons)
}
} catch {
print("Problem converting jsonResult to dictionary")
}
}
}
它在Swift和Objective-C中都是相同的过程。
答案 1 :(得分:0)
一旦你拖动&删除项目中的文件,该文件将放入您的应用程序包中。因此,您需要在应用程序包上获取文件的路径。
NSString* path = [[NSBundle mainBundle] pathForResource:@"Areafiles" ofType:@"json"];
现在您已准备好将其内容加载到字符串
上NSString* content = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
然后你想从该字符串中获取字典
NSArray *json = [NSJSONSerialization JSONObjectWithData:[content dataUsingEncoding:NSUTF8StringEncoding] options: NSJSONReadingMutableContainers error:&error];
答案 2 :(得分:0)
档案 - > NSData的
// get path to the file
NSString *path = [[NSBundle mainBundle]pathForResource:@"Areafiles"
ofType:@"json"];
// NSData from the filepath
NSData *fileData = [NSData dataWithContentsOfFile:path];
NSData - >的NSDictionary
NSError* error;
NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:fileData
options:kNilOptions
error:&error];
if (error == nil) {
NSLog(@"%@", jsonDict);
return jsonDict;
}
else {
NSLog(@"Error reading JSON file");
return nil;
}