zoukankan      html  css  js  c++  java
  • iphone开发 使用TouchJSON框架 解析JSON

    前提:配置到某具体的工程项目中
    复制TouchJSON框架源代码到自己的工程项目中,即将TouchJSON/Source目录及文件拷贝到项目中,在添加到工程项目中时确认选中“Copy items into destination groups folder(if needed)”项。

    转换JSON数据到对象——即解析,反序列化操作

    首先引入文件:#import "CJSONDeserializer.h"到项目具体源文件中。

    然后就可以将一个含有JSON数据的NSData对象进行转换成一个对象。
    NSData  *theJSONData =  /* 这里是一些JSON数据 */ 
    NSError  *theError = nil;
    id  theObject  =  [ [ CJSONDeserializer  deserializer]  deserializeAsDictionary : jsonData error:&error];

    返回结果的对象的类(id theObject)取决于这个JSON数据的类型。如果这个对象是NULL则解析失败,你需要检查参数错误。
    以下是解析过程的示例代码:

    NSString  *jsonStringSrc  =  @"从文件读取或者从网络获得的JSON字符串";
    NSData  *jsonData  =  [jsonStringSrc  dataUsingEncoding : NSUTF8StringEncoding];
    NSError  *error  =  nil ;
    NSDictionary  *dictionary  =  [ [ CJSONDeserializer  deserializer ]  deserializeAsDictionary : jsonData   error : &error ];

    上述代码是将一个含有JSON数据字典的字符串转换为一个NSDictionary对象。如果上例中JSON根对象不是个字典则反序列化操作失败。

     转换某对象到JSON数据——即生成,序列化操作
     
    首先引入文件:#import "CJSONDataserializer.h"到项目具体源文件中。
     然后就可以将一个具体对象序列化为一个JSON数据。
     NSDictionary  *dictionary = [NSDictionary dictionaryWithObject:@"b" forkey:@"a"];
     NSError *error = NULL;
     NSData *jsonData = [[CJSONSerializer serializer] serializeObject:dictionary  error:&error];
     NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
     NSLog(@"%@",jsonString);

  • 相关阅读:
    IntelliJ IDEA 2020.1.1中java web项目的配置
    Js查漏补缺10-数组、栈、队列、回调函数等
    Js查漏补缺09-this对象
    Js查漏补缺08-闭包
    Js查漏补缺07-匿名函数应用到的框架
    Js查漏补缺06-匿名函数的用法
    Js查漏补缺05-函数
    Js查漏补缺04-Object类型
    Js查漏补缺03-循环结构
    Runnabler
  • 原文地址:https://www.cnblogs.com/zhiqiangsimida/p/2774615.html
Copyright © 2011-2022 走看看