Json的本地写入和读取,也可以方便在开发中数据的调试
不知道小伙伴们,在开发中,数据调试的过程中,尤其是很多状态的情况下调试,是不是总是麻烦后台的小哥改变不同的状态,总感觉这样太麻烦了,
那么就可以,把数据写入到本地,然后去沙盒中,找到这个写入的文件,直接去改变这个文件中的数据。之后就可以不用再网络请求了,可以直接读取这个文件的数据来调试自己的界面了,
YXJsonSaveOrLoadTool.h
@interface YXJsonSaveOrLoadTool : NSObject +(instancetype)shareTool; //** 写入数据 */ -(void)SaveJsonWith:(id)dict UrlType:(NSString *)urlType; //** 读取数据 */ -(NSMutableDictionary*)loadJsonFormFile:(NSString *)urlType; @end
YXJsonSaveOrLoadTool.m
@implementation YXJsonSaveOrLoadTool
+(instancetype)shareTool{
static dispatch_once_t onceToken;
static YXJsonSaveOrLoadTool *instance;
dispatch_once(&onceToken, ^{
instance = [[YXJsonSaveOrLoadTool alloc]init];
});
return instance;
}
//** 写入数据 */
-(void)SaveJsonWith:(id)dict UrlType:(NSString *)urlType{
if (dict == nil || dict == [NSNull null]) {
return;
}
if (urlType.length==0) {
urlType = @"test";
}
NSString * path = [self pathForDataFile:urlType];
[dict writeToFile:path atomically:YES];
}
//** 读取数据 */
-(NSMutableDictionary*)loadJsonFormFile:(NSString *)urlType
{
NSString * path = [self pathForDataFile:urlType];
NSMutableDictionary * rootObject = [[NSMutableDictionary alloc] initWithContentsOfFile:path];
if (rootObject == nil ) {
rootObject = [[NSMutableDictionary alloc] initWithCapacity:0];
}
return rootObject;
}
//** 路径 */
-(NSString *)pathForDataFile:(NSString *)urltype {
NSArray* documentDir = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString* path = nil;
if (documentDir) {
path = [documentDir objectAtIndex:0];
}
return [NSString stringWithFormat:@"%@/%@.%@", path,urltype,@"json"];
}
@end
新的方式:
如果后台给的有返回事例代码json,直接复制json到本地,把json文件到路径放到下面就可以直接获取了,这样获取的结果和后台返回的一样,可以实时修改json状态,不用重复运行模拟器,刷新数据就可以看到实时数据了
NSDictionary *objc = [NSJSONSerialization JSONObjectWithData:[NSData dataWithContentsOfFile:@"本地的json文件路径"] options:0 error:nil];
如果有什么错误的地方,请不惜指教,😄

浙公网安备 33010602011771号