将Model对象转换成json文本或者json二进制文件

https://github.com/casatwy/AnyJson

注意:经过测试,不能够直接处理字典或者数组

主要源码的注释

AJTransformer.h 与 AJTransformer.m

//
//  AJTransformer.h
//  AnyJson
//
//  Created by casa on 14-9-19.
//  Copyright (c) 2014年 casa. All rights reserved.
//

#import <Foundation/Foundation.h>@protocol AJSerializable;@interface AJSerializer : NSObject/***  将对象转换成json二进制文件**  @param object 对象**  @return json二进制文件*/
+ (NSData *)jsonDataWithObject:(id)object;/***  将对象转换成json字符串**  @param object 对象**  @return json字符串*/
+ (NSString *)jsonStringWithObject:(id)object;+ (id)objectWithJsonData:(NSData *)jsonData targetObjectClass:(Class)targetObjectClass;
+ (id)objectWithJsonString:(NSString *)jsonString targetObjectClass:(Class)targetObjectClass;@end

//
//  AJTransformer.m
//  AnyJson
//
//  Created by casa on 14-9-19.
//  Copyright (c) 2014年 casa. All rights reserved.
//

#import "AJSerializer.h"
#import "AJObject2JsonSerializer.h"
#import "AJJson2ObjectSerializer.h"@implementation AJSerializer#pragma mark - public method
+ (NSData *)jsonDataWithObject:(id)object
{id basicObject = [AJObject2JsonSerializer serializeToBasicObject:object];return [NSJSONSerialization dataWithJSONObject:basicObject options:0 error:nil];
}+ (NSString *)jsonStringWithObject:(id)object
{NSString *jsonString = [[NSString alloc] initWithData:[AJSerializer jsonDataWithObject:object] encoding:NSUTF8StringEncoding];return jsonString;
}+ (id)objectWithJsonData:(NSData *)jsonData targetObjectClass:(Class)targetObjectClass
{id jsonObject = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:nil];return [AJJson2ObjectSerializer transformJsonObject:jsonObject toTargetObjectClass:targetObjectClass];
}+ (id)objectWithJsonString:(NSString *)jsonString targetObjectClass:(Class)targetObjectClass
{NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];return [AJSerializer objectWithJsonData:jsonData targetObjectClass:targetObjectClass];
}@end

Model类:

//
//  Playground.h
//  AnyJson
//
//  Created by casa on 14-9-20.
//  Copyright (c) 2014年 casa. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "OtherObject.h"@interface Playground : NSObject@property (nonatomic, assign) NSInteger testInteger;
@property (nonatomic, strong) OtherObject *otherObject;@end

//
//  OtherObject.h
//  AnyJson
//
//  Created by casa on 14-9-21.
//  Copyright (c) 2014年 casa. All rights reserved.
//

#import <Foundation/Foundation.h>@interface OtherObject : NSObject@property (nonatomic, assign) NSInteger  testInteger;
@property (nonatomic, assign) BOOL       isTest;
@property (nonatomic, strong) NSString  *name;
@property (nonatomic, assign) char       testChar;@end

使用的源码:

ViewController.m

//
//  ViewController.m
//  AnyJson
//
//  Created by casa on 14-9-19.
//  Copyright (c) 2014年 casa. All rights reserved.
//

#import "ViewController.h"
#import "AnyJson.h"
#import "Playground.h"
#import "AJClassHelper.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];Playground *playground   = [[Playground alloc] init];OtherObject *otherObject = [[OtherObject alloc] init];otherObject.testInteger  = 13;otherObject.isTest       = YES;otherObject.name         = @"casa";otherObject.testChar     = 'c';playground.otherObject   = otherObject;NSString *jsonString     = [AJSerializer jsonStringWithObject:playground];NSLog(@"json string is %@", jsonString);
}@end

打印的信息:

2015-01-04 20:52:18.399 AnyJson[3825:149779] json string is {"testInteger":0,"otherObject":{"isTest":true,"name":"casa","testInteger":13,"testChar":"c"}}

几个需要注意的地方:

-此处是属性中包含了属性-

将Model对象转换成json文本或者json二进制文件相关推荐

  1. json字符串转换成json对象,json对象转换成字符串,值转换成字符串,字符串转成值...

    json字符串转换成json对象,json对象转换成字符串,值转换成字符串,字符串转成值 原文:json字符串转换成json对象,json对象转换成字符串,值转换成字符串,字符串转成值 主要内容: 一 ...

  2. python里class转换_python实现class对象转换成json/字典的方法

    python实现class对象转换成json/字典的方法 发布于 2016-03-28 08:05:44 | 153 次阅读 | 评论: 0 | 来源: 网友投递 Python编程语言Python 是 ...

  3. python 对象转换为json_Python Python对象转换成JSON

    1.从Python对象转换成JSON 如果有Python对象,则可以使用json.dumps()方法将其转换为JSON字符串. 例如: 从Python对象转换为JSON:import json # a ...

  4. Flex4将对象转换成json串

    使用json需要先引入as3corelib.swc 1.将对象转换成json串 var obj:Object = new Object(); obj.filename = "1.jpg&qu ...

  5. 把对象转换成JSON字符串 第二稿支持移动设备

    /*** 导入jackson包 把对象转换成JSON字符串 第二稿 支持移动设备* @param pn* @param request* @return*/@RequestMapping(value ...

  6. Java对象转换成JSON对象/JSON对象转换成JSON字符串/JSON字符串转换成JS对象

    文章目录 后端部分 前端部分 后端部分 Option op = new Option("海淀","hd");//java对象转换json对象 JSONObjec ...

  7. 使用Jackson将一个对象转换成一个JSON字符串

    由于ajax的流行,在程序中使用了越来越多的json来进行数据的传输,而Jackson可以将一个普通的java对象转换成一个json的字符串,帮助程序员进行前后端数据的传输. 首先需要导入程序依赖的j ...

  8. python对象列表转换为字典_python实现class对象转换成json/字典的方法

    本文实例讲述了python实现class对象转换成json字典的方法.分享给大家供大家参考,具体如下: # -*- encoding: UTF-8 -*- class Student: name = ...

  9. 【JavaScript】查漏补缺 —对象转换成字符串JSON.stringify()

    [JavaScript]查漏补缺 -对象转换成字符串JSON.stringify() 将字符串转换为对象类型

最新文章

  1. 借助 Debugging Tools 分析蓝屏故障原因
  2. bzoj2427: [HAOI2010]软件安装
  3. oracle数据库11gr2,Oracle 11g R2 X64数据库安装
  4. T-SQL编程基础之二:条件选择、循环编程
  5. 马上就校招了,是要去实习还是复习?
  6. DWRUtil未定义的问题
  7. wordpress如何屏蔽wp-json(禁用REST API)
  8. python学习-----------argparse
  9. python学习(三)
  10. 数据挖掘肿瘤预测_给你一个基因,利用数据挖掘能做什么?
  11. 2063【例1.4】牛吃牧草-c++语言入门
  12. 计算机四个发展应用范围,计算机的四个发展阶段
  13. 扇贝单词英语版_产品分析报告
  14. ODL:OpenDayLight项目中子项目统计(二)
  15. 发票核验API接口到底好用吗
  16. Gradle Task的使用
  17. Android中HorizontalScrollView的使用总结
  18. 一文读懂STM32时钟树(时钟系统)(以STM32F767为例)
  19. Kivy转apk——使用打包虚拟机(亲测~)
  20. 2022年吉林最新中级消防员模拟试题题库及答案

热门文章

  1. [NHibernate] Guid 作主键速度超慢的背后
  2. Red Hat linux 9 初装配置
  3. 2016 实习招聘面试经历 - 3
  4. C#应用NPOI实现导出EXcel表格中插入饼状图(可实现动态数据生成)
  5. 【quickhybrid】架构一个Hybrid框架
  6. zabbix 自动注册发现
  7. 【转】Weblogic的集群
  8. 如何把字符串类型转换成整型?
  9. 开源 免费 java CMS - FreeCMS-数据对象-link
  10. 禁止输入emoji表情