-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathXTJSONObject.m
More file actions
84 lines (64 loc) · 2.28 KB
/
XTJSONObject.m
File metadata and controls
84 lines (64 loc) · 2.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
//
// XTJSONObject.h
// XTUtils
//
// Created by uranpro on 23.06.11.
// Copyright 2011 xtraVoid. All rights reserved.
//
#import "XTJSONObject.h"
#import "JSON.h"
NSStringEncoding const XTJSONObjectDefaultEncoding = NSUTF8StringEncoding;
@implementation XTJSONObject
- (id)initWithJSONDict:(NSDictionary *)d {
self = [super init];
if (self) {
//
}
return self;
}
- (id)initWithJSONData:(NSData *)data {
return [self initWithJSONData:data
withEncoding:XTJSONObjectDefaultEncoding];
}
- (id)initWithJSONData:(NSData *)data withEncoding:(NSStringEncoding)encoding {
return [self initWithJSONString:[[[NSString alloc] initWithData:data encoding:encoding] autorelease]];
}
- (id)initWithJSONString:(NSString *)str {
return [self initWithJSONDict:[str JSONValue]];
}
#pragma mark - Factory methods
+ (id)object {
return [[[self alloc] init] autorelease];
}
+ (id)objectFromJSONData:(NSData *)data withEncoding:(NSStringEncoding) encoding {
return [self objectFromJSONString:[[[NSString alloc] initWithData:data
encoding:encoding] autorelease]];
}
+ (id)objectFromJSONData:(NSData *)data {
return [self objectFromJSONData:data
withEncoding:XTJSONObjectDefaultEncoding];
}
+ (id)objectFromJSONString:(NSString *)str {
return [self objectFromJSONDict:[str JSONValue]];
}
+ (id)objectFromJSONDict:(NSDictionary *)d {
return [[[self alloc] initWithJSONDict:d] autorelease];
}
+ (NSArray *)objectsFromJSONArrayData:(NSData *)data withEncoding:(NSStringEncoding)encoding {
return [self objectsFromJSONArrayString:[[[NSString alloc] initWithData:data
encoding:encoding] autorelease]];
}
+ (NSArray *)objectsFromJSONArrayData:(NSData *)data {
return [self objectsFromJSONArrayData:data
withEncoding:XTJSONObjectDefaultEncoding];
}
+ (NSArray *)objectsFromJSONArrayString:(NSString *)str {
return [self objectsFromJSONArrayDict:[str JSONValue]];
}
+ (NSArray *)objectsFromJSONArrayDict:(NSDictionary *)d {
NSMutableArray *tmp = [NSMutableArray array];
for (id i in d)
[tmp addObject:[self objectFromJSONDict:i]];
return tmp;
}
@end