将Model对象转换成json文本或者json二进制文件
将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二进制文件相关推荐
- json字符串转换成json对象,json对象转换成字符串,值转换成字符串,字符串转成值...
json字符串转换成json对象,json对象转换成字符串,值转换成字符串,字符串转成值 原文:json字符串转换成json对象,json对象转换成字符串,值转换成字符串,字符串转成值 主要内容: 一 ...
- python里class转换_python实现class对象转换成json/字典的方法
python实现class对象转换成json/字典的方法 发布于 2016-03-28 08:05:44 | 153 次阅读 | 评论: 0 | 来源: 网友投递 Python编程语言Python 是 ...
- python 对象转换为json_Python Python对象转换成JSON
1.从Python对象转换成JSON 如果有Python对象,则可以使用json.dumps()方法将其转换为JSON字符串. 例如: 从Python对象转换为JSON:import json # a ...
- Flex4将对象转换成json串
使用json需要先引入as3corelib.swc 1.将对象转换成json串 var obj:Object = new Object(); obj.filename = "1.jpg&qu ...
- 把对象转换成JSON字符串 第二稿支持移动设备
/*** 导入jackson包 把对象转换成JSON字符串 第二稿 支持移动设备* @param pn* @param request* @return*/@RequestMapping(value ...
- Java对象转换成JSON对象/JSON对象转换成JSON字符串/JSON字符串转换成JS对象
文章目录 后端部分 前端部分 后端部分 Option op = new Option("海淀","hd");//java对象转换json对象 JSONObjec ...
- 使用Jackson将一个对象转换成一个JSON字符串
由于ajax的流行,在程序中使用了越来越多的json来进行数据的传输,而Jackson可以将一个普通的java对象转换成一个json的字符串,帮助程序员进行前后端数据的传输. 首先需要导入程序依赖的j ...
- python对象列表转换为字典_python实现class对象转换成json/字典的方法
本文实例讲述了python实现class对象转换成json字典的方法.分享给大家供大家参考,具体如下: # -*- encoding: UTF-8 -*- class Student: name = ...
- 【JavaScript】查漏补缺 —对象转换成字符串JSON.stringify()
[JavaScript]查漏补缺 -对象转换成字符串JSON.stringify() 将字符串转换为对象类型
最新文章
- 借助 Debugging Tools 分析蓝屏故障原因
- bzoj2427: [HAOI2010]软件安装
- oracle数据库11gr2,Oracle 11g R2 X64数据库安装
- T-SQL编程基础之二:条件选择、循环编程
- 马上就校招了,是要去实习还是复习?
- DWRUtil未定义的问题
- wordpress如何屏蔽wp-json(禁用REST API)
- python学习-----------argparse
- python学习(三)
- 数据挖掘肿瘤预测_给你一个基因,利用数据挖掘能做什么?
- 2063【例1.4】牛吃牧草-c++语言入门
- 计算机四个发展应用范围,计算机的四个发展阶段
- 扇贝单词英语版_产品分析报告
- ODL:OpenDayLight项目中子项目统计(二)
- 发票核验API接口到底好用吗
- Gradle Task的使用
- Android中HorizontalScrollView的使用总结
- 一文读懂STM32时钟树(时钟系统)(以STM32F767为例)
- Kivy转apk——使用打包虚拟机(亲测~)
- 2022年吉林最新中级消防员模拟试题题库及答案