zoukankan      html  css  js  c++  java
  • iOS 如何用JSONKit读写JSON文件

     如何用JSONKit读写JSON文件
    分类: ios 510人阅读 评论(0) 收藏 举报

    JSON文件格式简单,使用方便,值得一用。

    目前已经有多个库支持Json文件的解析,在这之中,JSONkit用起来方便,而且效率比较高,本文介绍的就是JSONKit的使用方法。

    1、准备工作

    下载JSONKit包:http://download.csdn.net/detail/enuola/4523160

    2、写json文件

    • 创建文件

    //创建文件目录以及文件,需要用到filemanager

    [plain] view plaincopy
    1.       
    2. NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
    3. NSString *documentsDirectory = [paths objectAtIndex:0];  
    4. testDirectory = [documentsDirectory stringByAppendingPathComponent:@"data"];  
    5. [fileManager createDirectoryAtPath:testDirectory withIntermediateDirectories:YES attributes:nil error:nil];  
    6. letterllkPath = [testDirectory stringByAppendingPathComponent:@"letterllk.json"];  
    •       打开文件准备写
    [plain] view plaincopy
    1. //打开文件,需要用到NSFileHandle  
    2. NSFileHandle *letterHandle = [NSFileHandle fileHandleForWritingAtPath:letterllkPath];  
    • 将内容转换为json数据
    JSONkit中支持以下几种数据类型转换:
    • NSString
    • NSArry
    • NSDictionary
    使用起来很简单:
    [plain] view plaincopy
    1. //原始数据  
    2. NSString *str = ….;  
    3. NSArry *arry = ….;  
    4. NSDictionary *dic = …;  
    5.   
    6. //转换成JSon字符串,就是将原始数据打包  
    7. NSString  *strJson = [str JSONString];  
    8. NSString  *arryJson = [arry JSONString];  
    9. NSString  *dicJson = [dic JSONString];  
    10.   
    11. //或者直接转换成NSData*  
    12. NSData *strData = [str JSONData];  
    13. NSData *arryData = [arry JSONData];  
    14. NSData *dicData = [dic JSONData];  
    • 将转换后的json数据写入文本
    [plain] view plaincopy
    1. [letterHandle seekToEndOfFile];  
    2. [letterHandle writeData:[strJson dataUsingEncoding:NSUTF8StringEncoding]];  
    3. 或者  
    4. [letterHandle writeData:strData];  

    3、读json文件

    • 读取文件内容
    [plain] view plaincopy
    1. NSString *filePath   =  [[NSBundle mainBundle] pathForResource:@"test" ofType:@"json"];  
    2. NSString *jsonString  =   [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];  

    • 用json解析内容
    [plain] view plaincopy
    1. //根据json文件,逐层解析  
    2. NSError *error;  
    3. id rawData = [jsonString objectFromJSONStringWithParseOptions:JKParseOptionNone error:&error];  
    4.   
    5. if ( error != nil ) {  
    6. }  
    7.   
    8. if ( [rawData isKindOfClass:[NSDictionary class]] )   
    9. {}  
    10. else if ( [rawData isKindOfClass:[NSArray class]] ) {  
    11. }  
    12. else {  
    13. }  

    4、总结

    Json的编码格式主要包括:

    • []代表NSArry类
    • {}代表一个对象,比如NSDictionary
    • ,代表对象分隔符
    • :代表键值对,或者可以理解为赋值=

    JSONkit其实就是自动的帮你将原始数据加上这些符号,或者相反的,去除这些符号

  • 相关阅读:
    [LeetCode] Wildcard Matching, Solution
    [LeetCode] Add Binary 解题报告
    [LeetCode] Validate Binary Search Tree 解题报告
    [LeetCode] ZigZag Conversion 解题报告
    [LeetCode] Best Time to Buy and Sell Stock II Solution
    [LeetCode] Anagrams 解题报告
    [LeetCode] Word Search 解题报告
    【转载】git/github初级运用自如
    关于实训的那点事儿
    【转载】解决git Push时请求username和password,而不是sshkey验证
  • 原文地址:https://www.cnblogs.com/lihaibo-Leao/p/3729822.html
Copyright © 2011-2022 走看看