将Model对象转换成json文本或者json二进制文件
2015-01-04 21:03
731 查看
将Model对象转换成json文本或者json二进制文件
https://github.com/casatwy/AnyJson
注意:经过测试,不能够直接处理字典或者数组
主要源码的注释
AJTransformer.h 与 AJTransformer.m
Model类:
使用的源码:
ViewController.m
打印的信息:
2015-01-04 20:52:18.399 AnyJson[3825:149779] json string is {"testInteger":0,"otherObject":{"isTest":true,"name":"casa","testInteger":13,"testChar":"c"}}
几个需要注意的地方:
-此处是属性中包含了属性-
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"}}
几个需要注意的地方:
-此处是属性中包含了属性-
相关文章推荐
- 使用GSON将json文件转换成对象或者集合
- 二进制文件转换为文本工具
- java方式的将java对象以及list或者map转化为json数据,json转换为object或者map
- 将Xml文件从文本格式转换为二进制格式可以划分为六个步骤
- awk将普通文本转换成json文件
- Gson解析或者转换对象成json字符串时,String为NULL转空字符串处理方案
- javabean对象和json对象互相转换及行读取文件处理
- 将JSON字典转换为Model文件
- 对象与json文件之间的转换
- 把 JSON 文本转换为 JavaScript 对象
- 把 JSON 文本转换为 JavaScript 对象
- C++ 文件流fstream对象操作文件(文本文件和二进制文件)
- 使用Gson或者GsonBuilder实现JSON和Java对象之间的转换
- 怎么把plist文件转换成JSON 文件 ,在把JSON文件转换成字典或者数组
- 类对象序列化(反序列化)成xml文件或者二进制文件到本地文件方法
- Action Script读取JSON文件并转换成对象方法
- writeObject可以写n个,但是readObject()却只能读一次,你做一下测试。 如果你需要序列化好几个类的话,建议你用json;或者自己写两个方法,一个是将对象转换为字符串,一个是将字符串
- 将XML文件中的内容转换为Json对象
- 将对象、Map或者List转换为Json串