问题描述
我想在我的应用程序中使用json。我可以使用以下代码解析来自url的json:
I want to use json in my application. I can parse json from url with this code :
#import "ViewController.h"
@implementation ViewController
{
NSDictionary *titles;
NSMutableData *Data;
NSArray *fileContent;
NSArray *folderContent;
NSMutableArray *all;
}
@synthesize Table;
- (void)viewDidLoad
{
[super viewDidLoad];
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
NSURL *url =[NSURL URLWithString:@"http://192.168.1.100/veis/root/developers/api/filemanager.php?key=5147379269&getlist=root"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[[NSURLConnection alloc]initWithRequest:request delegate:self];
}
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
Data = [[NSMutableData alloc]init];
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)theData
{
[Data appendData:theData];
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
titles = [NSJSONSerialization JSONObjectWithData:Data options:kNilOptions error:nil];
fileContent = [titles objectForKey:@"fileContent"];
folderContent = [titles objectForKey:@"folderContent"];
all = [[NSMutableArray alloc]init];
[all addObjectsFromArray:folderContent];
[all addObjectsFromArray:fileContent];
[Table reloadData];
}
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{
UIAlertView *errorView = [[UIAlertView alloc]initWithTitle:@"Error" message:@"The Connection has been LOST" delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil];
[errorView show];
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
}
但我希望当我没有互联网时我可以使用json。我不知道如何离线(或在我的设备中本地)使用json
but I want when I dont have internet I can to use of json. I dont know how to use of json in way offline (or local in my device)
你可以指导我在这个问题上如何在离线方式中使用json
can you guide me in this issue that how to use json in way offline
推荐答案
Online
和离线 json数据,两者都相同,只需要使用 Unparsed
数据写 data.json
in Documents Directory
,如果你想使用相同的进程来使用 json
,但是你想使用解析的json,然后把它写成 plist
..
The way parsing should be same for Online
and Offline
json data, both are same, just you need to write a file using Unparsed
data say data.json
in Documents Directory
, if you want to use the same process to use json
, but if you want to use parsed json, then write it as plist
..
你可以尝试使用以下方法
You can try to use the following methods
-(void)saveJsonWithData:(NSData *)data{
NSString *jsonPath=[[NSSearchPathForDirectoriesInDomains(NSUserDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingFormat:@"/data.json"];
[data writeToFile:jsonPath atomically:YES];
}
-(NSData *)getSavedJsonData{
NSString *jsonPath=[[NSSearchPathForDirectoriesInDomains(NSUserDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingFormat:@"/data.json"];
return [NSData dataWithContentsOfFile:jsonPath]
}
然后将函数调用为
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
[self saveJsonWithData:data];
}
这篇关于如何在ios设备中存储来自url的json数据并使用本地数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!