├── .gitmodules
├── AnyJSON.podspec
├── AnyJSON.xcworkspace
└── contents.xcworkspacedata
├── AnyJSON
├── AnyJSON.h
└── AnyJSON.m
├── CLI
├── CLI.xcodeproj
│ ├── project.pbxproj
│ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
├── Prefix.pch
└── main.m
├── Example
├── AnyJSON Example.xcodeproj
│ ├── project.pbxproj
│ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
├── AppDelegate.h
├── AppDelegate.m
├── Default-568h@2x.png
├── Info.plist
├── Prefix.pch
├── RootViewController.h
├── RootViewController.m
├── RootViewController.xib
└── main.m
├── LICENSE.md
└── README.md
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "Example/Libraries/JSONKit"]
2 | path = Example/Libraries/JSONKit
3 | url = https://github.com/johnezang/JSONKit.git
4 | [submodule "Example/Libraries/YAJL"]
5 | path = Example/Libraries/YAJL
6 | url = https://github.com/gabriel/yajl-objc.git
7 | [submodule "Example/Libraries/SBJson"]
8 | path = Example/Libraries/SBJson
9 | url = https://github.com/stig/json-framework.git
10 | [submodule "Example/Libraries/NextiveJson"]
11 | path = Example/Libraries/NextiveJson
12 | url = https://github.com/nextive/NextiveJson.git
13 |
--------------------------------------------------------------------------------
/AnyJSON.podspec:
--------------------------------------------------------------------------------
1 | Pod::Spec.new do |s|
2 | s.name = 'AnyJSON'
3 | s.version = '0.1.0'
4 | s.license = 'MIT'
5 | s.summary = 'Encode / Decode JSON by any means possible.'
6 | s.homepage = 'https://github.com/mattt/AnyJSON'
7 | s.authors = { 'Mattt' => 'mattt@me.com', 'Cédric Luthi' => 'cedric.luthi@gmail.com' }
8 | s.source = { git: 'https://github.com/mattt/AnyJSON.git', tag: s.version }
9 | s.source_files = 'AnyJSON'
10 | end
11 |
--------------------------------------------------------------------------------
/AnyJSON.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
7 |
9 |
10 |
12 |
13 |
14 |
16 |
17 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/AnyJSON/AnyJSON.h:
--------------------------------------------------------------------------------
1 | // AnyJSON.h
2 | //
3 | // Copyright (c) 2012 Mattt (https://mat.tt/)
4 | //
5 | // Permission is hereby granted, free of charge, to any person obtaining a copy
6 | // of this software and associated documentation files (the "Software"), to deal
7 | // in the Software without restriction, including without limitation the rights
8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | // copies of the Software, and to permit persons to whom the Software is
10 | // furnished to do so, subject to the following conditions:
11 | //
12 | // The above copyright notice and this permission notice shall be included in
13 | // all copies or substantial portions of the Software.
14 | //
15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | // THE SOFTWARE.
22 |
23 | /*
24 | * AnyJSON does not provide a public API, but instead implements the public API of
25 | * NSJSONSerialization using a third-party JSON framework when targeting platforms
26 | * without NSJSONSerialization (i.e. iOS < 5.0 and Mac OS X < 10.7).
27 | *
28 | * See the project README for more information.
29 | */
30 |
--------------------------------------------------------------------------------
/AnyJSON/AnyJSON.m:
--------------------------------------------------------------------------------
1 | // AnyJSON.h
2 | //
3 | // Copyright (c) 2012 Mattt (https://mat.tt/)
4 | //
5 | // Permission is hereby granted, free of charge, to any person obtaining a copy
6 | // of this software and associated documentation files (the "Software"), to deal
7 | // in the Software without restriction, including without limitation the rights
8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | // copies of the Software, and to permit persons to whom the Software is
10 | // furnished to do so, subject to the following conditions:
11 | //
12 | // The above copyright notice and this permission notice shall be included in
13 | // all copies or substantial portions of the Software.
14 | //
15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | // THE SOFTWARE.
22 |
23 | #import
24 | #import
25 |
26 | static void AnyJSONUnimplemented(id self, SEL _cmd) {
27 | NSString *reason = [NSString stringWithFormat:@"%@[%@ %@] is not implemented", class_isMetaClass(object_getClass(self)) ? @"+" : @"-", self, NSStringFromSelector(_cmd)];
28 | [[NSException exceptionWithName:@"AnyJSONUnimplementedException" reason:reason userInfo:nil] raise];
29 | }
30 |
31 | BOOL AnyJSONIsValidObject(id self, SEL _cmd, id object) {
32 | AnyJSONUnimplemented(self, _cmd);
33 | return NO;
34 | }
35 |
36 | NSData * AnyJSONEncodeData(id self, SEL _cmd, id object, NSJSONWritingOptions options, NSError **error) {
37 | if (!object) {
38 | return nil;
39 | }
40 |
41 | NSData *data = nil;
42 |
43 | SEL _JSONKitSelector = NSSelectorFromString(@"JSONDataWithOptions:error:");
44 |
45 | SEL _YAJLSelector = NSSelectorFromString(@"yajl_JSONStringWithOptions:indentString:");
46 |
47 | id _SBJsonWriterClass = NSClassFromString(@"SBJsonWriter");
48 | SEL _SBJsonWriterSelector = NSSelectorFromString(@"dataWithObject:");
49 | SEL _SBJsonWriterSetHumanReadableSelector = NSSelectorFromString(@"setHumanReadable:");
50 |
51 | id _NXJsonSerializerClass = NSClassFromString(@"NXJsonSerializer");
52 | SEL _NXJsonSerializerSelector = NSSelectorFromString(@"serialize:");
53 |
54 | if (_JSONKitSelector && [object respondsToSelector:_JSONKitSelector]) {
55 | NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:[object methodSignatureForSelector:_JSONKitSelector]];
56 | invocation.target = object;
57 | invocation.selector = _JSONKitSelector;
58 |
59 | NSUInteger serializeOptionFlags = 0;
60 | if ((options & NSJSONWritingPrettyPrinted) == NSJSONWritingPrettyPrinted) {
61 | serializeOptionFlags = 1 << 0; // JKSerializeOptionPretty
62 | }
63 | [invocation setArgument:&serializeOptionFlags atIndex:2];
64 | if (error != NULL) {
65 | [invocation setArgument:error atIndex:3];
66 | }
67 |
68 | [invocation invoke];
69 | [invocation getReturnValue:&data];
70 | } else if (_SBJsonWriterClass && [_SBJsonWriterClass instancesRespondToSelector:_SBJsonWriterSelector]) {
71 | id writer = [[_SBJsonWriterClass alloc] init];
72 | if ((options & NSJSONWritingPrettyPrinted) == NSJSONWritingPrettyPrinted && [writer respondsToSelector:_SBJsonWriterSetHumanReadableSelector]) {
73 | NSInvocation *humanReadableInvocation = [NSInvocation invocationWithMethodSignature:[writer methodSignatureForSelector:_SBJsonWriterSetHumanReadableSelector]];
74 | humanReadableInvocation.target = writer;
75 | humanReadableInvocation.selector = _SBJsonWriterSetHumanReadableSelector;
76 | [humanReadableInvocation setArgument:&(BOOL){YES} atIndex:2];
77 | [humanReadableInvocation invoke];
78 | }
79 | NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:[writer methodSignatureForSelector:_SBJsonWriterSelector]];
80 | invocation.target = writer;
81 | invocation.selector = _SBJsonWriterSelector;
82 |
83 | [invocation setArgument:&object atIndex:2];
84 |
85 | [invocation invoke];
86 | [invocation getReturnValue:&data];
87 |
88 | if (!data && error && [writer respondsToSelector:@selector(error)]) {
89 | id writerError = [writer performSelector:@selector(error)];
90 | if ([writerError isKindOfClass:[NSError class]]) {
91 | *error = writerError;
92 | } else if ([writerError isKindOfClass:[NSString class]]) {
93 | *error = [NSError errorWithDomain:@"org.brautaset.SBJsonWriter.ErrorDomain" code:0 userInfo:@{NSLocalizedDescriptionKey : writerError}];
94 | }
95 | }
96 | [writer release];
97 | } else if (_YAJLSelector && [object respondsToSelector:_YAJLSelector]) {
98 | @try {
99 | NSString *JSONString = nil;
100 | NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:[object methodSignatureForSelector:_YAJLSelector]];
101 | invocation.target = object;
102 | invocation.selector = _YAJLSelector;
103 |
104 | NSUInteger genOptions = 0;
105 | if ((options & NSJSONWritingPrettyPrinted) == NSJSONWritingPrettyPrinted) {
106 | genOptions = 1 << 0; // YAJLGenOptionsBeautify
107 | }
108 | [invocation setArgument:&genOptions atIndex:2];
109 | NSString *indent = @" ";
110 | [invocation setArgument:&indent atIndex:3];
111 |
112 | [invocation invoke];
113 | [invocation getReturnValue:&JSONString];
114 |
115 | data = [JSONString dataUsingEncoding:NSUTF8StringEncoding];
116 | }
117 | @catch (NSException *exception) {
118 | *error = [[[NSError alloc] initWithDomain:NSStringFromClass([exception class]) code:0 userInfo:[exception userInfo]] autorelease];
119 | }
120 | } else if (_NXJsonSerializerClass && [_NXJsonSerializerClass respondsToSelector:_NXJsonSerializerSelector]) {
121 | NSString *JSONString = nil;
122 | NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:[_NXJsonSerializerClass methodSignatureForSelector:_NXJsonSerializerSelector]];
123 | invocation.target = _NXJsonSerializerClass;
124 | invocation.selector = _NXJsonSerializerSelector;
125 |
126 | [invocation setArgument:&object atIndex:2];
127 |
128 | [invocation invoke];
129 | [invocation getReturnValue:&JSONString];
130 | data = [JSONString dataUsingEncoding:NSUTF8StringEncoding];
131 | } else {
132 | NSDictionary *userInfo = [NSDictionary dictionaryWithObject:NSLocalizedString(@"Please add one of the following libraries to your project: JSONKit, SBJSON, YAJL or Nextive JSON", nil) forKey:NSLocalizedRecoverySuggestionErrorKey];
133 | [[NSException exceptionWithName:NSInternalInconsistencyException reason:NSLocalizedString(@"No JSON generation functionality available", nil) userInfo:userInfo] raise];
134 | }
135 |
136 | return data;
137 | }
138 |
139 | id AnyJSONDecodeData(id self, SEL _cmd, NSData *data, NSJSONReadingOptions options, NSError **error) {
140 | if (!data || [data length] == 0) {
141 | return nil;
142 | }
143 |
144 | id JSON = nil;
145 |
146 | SEL _JSONKitSelector = NSSelectorFromString(@"objectFromJSONDataWithParseOptions:error:");
147 | SEL _JSONKitMutableContainersSelector = NSSelectorFromString(@"mutableObjectFromJSONDataWithParseOptions:error:");
148 |
149 | SEL _YAJLSelector = NSSelectorFromString(@"yajl_JSONWithOptions:error:");
150 |
151 | id _SBJSONParserClass = NSClassFromString(@"SBJsonParser");
152 | SEL _SBJSONParserSelector = NSSelectorFromString(@"objectWithData:");
153 |
154 | id _NXJsonParserClass = NSClassFromString(@"NXJsonParser");
155 | SEL _NXJsonParserSelector = NSSelectorFromString(@"parseData:error:ignoreNulls:");
156 |
157 | if (_JSONKitSelector && [data respondsToSelector:_JSONKitSelector]) {
158 | NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:[data methodSignatureForSelector:_JSONKitSelector]];
159 | invocation.target = data;
160 | invocation.selector = _JSONKitSelector;
161 | if ((options & NSJSONReadingMutableContainers) == NSJSONReadingMutableContainers && [data respondsToSelector:_JSONKitMutableContainersSelector]) {
162 | invocation.selector = _JSONKitMutableContainersSelector;
163 | }
164 |
165 | NSUInteger parseOptionFlags = 0;
166 | [invocation setArgument:&parseOptionFlags atIndex:2];
167 | if (error != NULL) {
168 | [invocation setArgument:&error atIndex:3];
169 | }
170 |
171 | [invocation invoke];
172 | [invocation getReturnValue:&JSON];
173 | } else if (_SBJSONParserClass && [_SBJSONParserClass instancesRespondToSelector:_SBJSONParserSelector]) {
174 | id parser = [[_SBJSONParserClass alloc] init];
175 | NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:[parser methodSignatureForSelector:_SBJSONParserSelector]];
176 | invocation.target = parser;
177 | invocation.selector = _SBJSONParserSelector;
178 |
179 | [invocation setArgument:&data atIndex:2];
180 |
181 | [invocation invoke];
182 | [invocation getReturnValue:&JSON];
183 |
184 | if (!JSON && error && [parser respondsToSelector:@selector(error)]) {
185 | id parserError = [parser performSelector:@selector(error)];
186 | if ([parserError isKindOfClass:[NSError class]]) {
187 | *error = parserError;
188 | } else if ([parserError isKindOfClass:[NSString class]]) {
189 | *error = [NSError errorWithDomain:@"org.brautaset.SBJsonParser.ErrorDomain" code:0 userInfo:@{NSLocalizedDescriptionKey : parserError}];
190 | }
191 | }
192 | [parser release];
193 | } else if (_YAJLSelector && [data respondsToSelector:_YAJLSelector]) {
194 | NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:[data methodSignatureForSelector:_YAJLSelector]];
195 | invocation.target = data;
196 | invocation.selector = _YAJLSelector;
197 |
198 | NSUInteger yajlParserOptions = 0;
199 | [invocation setArgument:&yajlParserOptions atIndex:2];
200 | if (error != NULL) {
201 | [invocation setArgument:&error atIndex:3];
202 | }
203 |
204 | [invocation invoke];
205 | [invocation getReturnValue:&JSON];
206 | } else if (_NXJsonParserClass && [_NXJsonParserClass respondsToSelector:_NXJsonParserSelector]) {
207 | NSNumber *nullOption = [NSNumber numberWithBool:YES];
208 | NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:[_NXJsonParserClass methodSignatureForSelector:_NXJsonParserSelector]];
209 | invocation.target = _NXJsonParserClass;
210 | invocation.selector = _NXJsonParserSelector;
211 |
212 | [invocation setArgument:&data atIndex:2];
213 | if (error != NULL) {
214 | [invocation setArgument:&error atIndex:3];
215 | }
216 | [invocation setArgument:&nullOption atIndex:4];
217 |
218 | [invocation invoke];
219 | [invocation getReturnValue:&JSON];
220 | } else {
221 | NSDictionary *userInfo = [NSDictionary dictionaryWithObject:NSLocalizedString(@"Please add one of the following libraries to your project: JSONKit, SBJSON, YAJL or Nextive JSON", nil) forKey:NSLocalizedRecoverySuggestionErrorKey];
222 | [[NSException exceptionWithName:NSInternalInconsistencyException reason:NSLocalizedString(@"No JSON parsing functionality available", nil) userInfo:userInfo] raise];
223 | }
224 |
225 | return JSON;
226 | }
227 |
228 | NSInteger AnyJSONEncodeStream(id self, SEL _cmd, id object, NSOutputStream *stream, NSJSONWritingOptions options, NSError **error) {
229 | AnyJSONUnimplemented(self, _cmd);
230 | return 0;
231 | }
232 |
233 | id AnyJSONDecodeStream(id self, SEL _cmd, NSInputStream *stream, NSJSONReadingOptions options, NSError **error) {
234 | AnyJSONUnimplemented(self, _cmd);
235 | return nil;
236 | }
237 |
238 | @protocol AnyJSONSerialization
239 | @required
240 | + (BOOL)isValidJSONObject:(id)obj;
241 | + (NSData *)dataWithJSONObject:(id)obj options:(NSJSONWritingOptions)opt error:(NSError **)error;
242 | + (id)JSONObjectWithData:(NSData *)data options:(NSJSONReadingOptions)opt error:(NSError **)error;
243 | + (NSInteger)writeJSONObject:(id)obj toStream:(NSOutputStream *)stream options:(NSJSONWritingOptions)opt error:(NSError **)error;
244 | + (id)JSONObjectWithStream:(NSInputStream *)stream options:(NSJSONReadingOptions)opt error:(NSError **)error;
245 | @end
246 |
247 | __attribute__((constructor)) void AnyJSONInitialize(void) {
248 | Class NSJSONSerializationClass = objc_allocateClassPair(objc_getClass("NSObject"), "NSJSONSerialization", 0);
249 | if (!NSJSONSerializationClass) {
250 | return;
251 | }
252 |
253 | Class NSJSONSerializationMetaClass = object_getClass(NSJSONSerializationClass);
254 | class_addMethod(NSJSONSerializationMetaClass, @selector(isValidJSONObject:), (IMP)AnyJSONIsValidObject, protocol_getMethodDescription(@protocol(AnyJSONSerialization), @selector(isValidJSONObject:), YES, NO).types);
255 | class_addMethod(NSJSONSerializationMetaClass, @selector(dataWithJSONObject:options:error:), (IMP)AnyJSONEncodeData, protocol_getMethodDescription(@protocol(AnyJSONSerialization), @selector(dataWithJSONObject:options:error:), YES, NO).types);
256 | class_addMethod(NSJSONSerializationMetaClass, @selector(JSONObjectWithData:options:error:), (IMP)AnyJSONDecodeData, protocol_getMethodDescription(@protocol(AnyJSONSerialization), @selector(JSONObjectWithData:options:error:), YES, NO).types);
257 | class_addMethod(NSJSONSerializationMetaClass, @selector(writeJSONObject:toStream:options:error:), (IMP)AnyJSONEncodeStream, protocol_getMethodDescription(@protocol(AnyJSONSerialization), @selector(writeJSONObject:toStream:options:error:), YES, NO).types);
258 | class_addMethod(NSJSONSerializationMetaClass, @selector(JSONObjectWithStream:options:error:), (IMP)AnyJSONDecodeStream, protocol_getMethodDescription(@protocol(AnyJSONSerialization), @selector(JSONObjectWithStream:options:error:), YES, NO).types);
259 | objc_registerClassPair(NSJSONSerializationClass);
260 |
261 | Class *NSJSONSerializationClassRef = NULL;
262 | #if TARGET_CPU_ARM
263 | asm(
264 | "movw %0, :lower16:(L_OBJC_CLASS_NSJSONSerialization-(LPC0+4))\n"
265 | "movt %0, :upper16:(L_OBJC_CLASS_NSJSONSerialization-(LPC0+4))\n"
266 | "LPC0: add %0, pc" : "=r"(NSJSONSerializationClassRef)
267 | );
268 | #elif TARGET_CPU_X86_64
269 | asm("leaq L_OBJC_CLASS_NSJSONSerialization(%%rip), %0" : "=r"(NSJSONSerializationClassRef));
270 | #elif TARGET_CPU_X86
271 | asm("movl $L_OBJC_CLASS_NSJSONSerialization, %0" : "=r"(NSJSONSerializationClassRef));
272 | #else
273 | #error Unsupported CPU
274 | #endif
275 | if (NSJSONSerializationClassRef) {
276 | *NSJSONSerializationClassRef = NSJSONSerializationClass;
277 | }
278 | }
279 |
280 | asm(
281 | #if __OBJC2__
282 | ".section __DATA,__objc_classrefs,regular,no_dead_strip\n"
283 | #if TARGET_RT_64_BIT
284 | ".align 3\n"
285 | "L_OBJC_CLASS_NSJSONSerialization:\n"
286 | ".quad _OBJC_CLASS_$_NSJSONSerialization\n"
287 | #else
288 | ".align 2\n"
289 | "L_OBJC_CLASS_NSJSONSerialization:\n"
290 | ".long _OBJC_CLASS_$_NSJSONSerialization\n"
291 | #endif
292 | #else
293 | ".section __TEXT,__cstring,cstring_literals\n"
294 | "L_OBJC_CLASS_NAME_NSJSONSerialization:\n"
295 | ".asciz \"NSJSONSerialization\"\n"
296 | ".section __OBJC,__cls_refs,literal_pointers,no_dead_strip\n"
297 | ".align 2\n"
298 | "L_OBJC_CLASS_NSJSONSerialization:\n"
299 | ".long L_OBJC_CLASS_NAME_NSJSONSerialization\n"
300 | #endif
301 | ".weak_reference _OBJC_CLASS_$_NSJSONSerialization\n"
302 | );
303 |
304 | // Dummy category ensures AnyJSON functions are not stripped if the -ObjC linker flag is used.
305 | @implementation NSObject (AnyJSON) @end
306 |
--------------------------------------------------------------------------------
/CLI/CLI.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 46;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | C218F24916792C21008B57BA /* AnyJSON.m in Sources */ = {isa = PBXBuildFile; fileRef = C218F24716792C16008B57BA /* AnyJSON.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
11 | F8D31CE2167577D000AFB571 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F8D31CE1167577D000AFB571 /* Foundation.framework */; };
12 | F8D31CE5167577D000AFB571 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = F8D31CE4167577D000AFB571 /* main.m */; };
13 | /* End PBXBuildFile section */
14 |
15 | /* Begin PBXCopyFilesBuildPhase section */
16 | F8D31CDB167577D000AFB571 /* CopyFiles */ = {
17 | isa = PBXCopyFilesBuildPhase;
18 | buildActionMask = 2147483647;
19 | dstPath = /usr/share/man/man1/;
20 | dstSubfolderSpec = 0;
21 | files = (
22 | );
23 | runOnlyForDeploymentPostprocessing = 1;
24 | };
25 | /* End PBXCopyFilesBuildPhase section */
26 |
27 | /* Begin PBXFileReference section */
28 | C218F24616792C16008B57BA /* AnyJSON.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AnyJSON.h; sourceTree = ""; };
29 | C218F24716792C16008B57BA /* AnyJSON.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AnyJSON.m; sourceTree = ""; };
30 | F8D31CDD167577D000AFB571 /* anyjson */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = anyjson; sourceTree = BUILT_PRODUCTS_DIR; };
31 | F8D31CE1167577D000AFB571 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
32 | F8D31CE4167577D000AFB571 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; };
33 | F8D31CF41675785800AFB571 /* Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Prefix.pch; sourceTree = ""; };
34 | /* End PBXFileReference section */
35 |
36 | /* Begin PBXFrameworksBuildPhase section */
37 | F8D31CDA167577D000AFB571 /* Frameworks */ = {
38 | isa = PBXFrameworksBuildPhase;
39 | buildActionMask = 2147483647;
40 | files = (
41 | F8D31CE2167577D000AFB571 /* Foundation.framework in Frameworks */,
42 | );
43 | runOnlyForDeploymentPostprocessing = 0;
44 | };
45 | /* End PBXFrameworksBuildPhase section */
46 |
47 | /* Begin PBXGroup section */
48 | C218F24516792C16008B57BA /* AnyJSON */ = {
49 | isa = PBXGroup;
50 | children = (
51 | C218F24616792C16008B57BA /* AnyJSON.h */,
52 | C218F24716792C16008B57BA /* AnyJSON.m */,
53 | );
54 | name = AnyJSON;
55 | path = ../AnyJSON;
56 | sourceTree = "";
57 | };
58 | F8D31CD2167577D000AFB571 = {
59 | isa = PBXGroup;
60 | children = (
61 | C218F24516792C16008B57BA /* AnyJSON */,
62 | F8D31CE3167577D000AFB571 /* CLI */,
63 | F8D31CE0167577D000AFB571 /* Frameworks */,
64 | F8D31CDE167577D000AFB571 /* Products */,
65 | );
66 | sourceTree = "";
67 | };
68 | F8D31CDE167577D000AFB571 /* Products */ = {
69 | isa = PBXGroup;
70 | children = (
71 | F8D31CDD167577D000AFB571 /* anyjson */,
72 | );
73 | name = Products;
74 | sourceTree = "";
75 | };
76 | F8D31CE0167577D000AFB571 /* Frameworks */ = {
77 | isa = PBXGroup;
78 | children = (
79 | F8D31CE1167577D000AFB571 /* Foundation.framework */,
80 | );
81 | name = Frameworks;
82 | sourceTree = "";
83 | };
84 | F8D31CE3167577D000AFB571 /* CLI */ = {
85 | isa = PBXGroup;
86 | children = (
87 | F8D31CE4167577D000AFB571 /* main.m */,
88 | F8D31CE6167577D000AFB571 /* Supporting Files */,
89 | );
90 | name = CLI;
91 | sourceTree = "";
92 | };
93 | F8D31CE6167577D000AFB571 /* Supporting Files */ = {
94 | isa = PBXGroup;
95 | children = (
96 | F8D31CF41675785800AFB571 /* Prefix.pch */,
97 | );
98 | name = "Supporting Files";
99 | sourceTree = "";
100 | };
101 | /* End PBXGroup section */
102 |
103 | /* Begin PBXNativeTarget section */
104 | F8D31CDC167577D000AFB571 /* anyjson */ = {
105 | isa = PBXNativeTarget;
106 | buildConfigurationList = F8D31CEC167577D000AFB571 /* Build configuration list for PBXNativeTarget "anyjson" */;
107 | buildPhases = (
108 | F8D31CD9167577D000AFB571 /* Sources */,
109 | F8D31CDA167577D000AFB571 /* Frameworks */,
110 | F8D31CDB167577D000AFB571 /* CopyFiles */,
111 | );
112 | buildRules = (
113 | );
114 | dependencies = (
115 | );
116 | name = anyjson;
117 | productName = CLI;
118 | productReference = F8D31CDD167577D000AFB571 /* anyjson */;
119 | productType = "com.apple.product-type.tool";
120 | };
121 | /* End PBXNativeTarget section */
122 |
123 | /* Begin PBXProject section */
124 | F8D31CD4167577D000AFB571 /* Project object */ = {
125 | isa = PBXProject;
126 | attributes = {
127 | LastUpgradeCheck = 0450;
128 | ORGANIZATIONNAME = "Mattt";
129 | };
130 | buildConfigurationList = F8D31CD7167577D000AFB571 /* Build configuration list for PBXProject "CLI" */;
131 | compatibilityVersion = "Xcode 3.2";
132 | developmentRegion = English;
133 | hasScannedForEncodings = 0;
134 | knownRegions = (
135 | en,
136 | );
137 | mainGroup = F8D31CD2167577D000AFB571;
138 | productRefGroup = F8D31CDE167577D000AFB571 /* Products */;
139 | projectDirPath = "";
140 | projectRoot = "";
141 | targets = (
142 | F8D31CDC167577D000AFB571 /* anyjson */,
143 | );
144 | };
145 | /* End PBXProject section */
146 |
147 | /* Begin PBXSourcesBuildPhase section */
148 | F8D31CD9167577D000AFB571 /* Sources */ = {
149 | isa = PBXSourcesBuildPhase;
150 | buildActionMask = 2147483647;
151 | files = (
152 | F8D31CE5167577D000AFB571 /* main.m in Sources */,
153 | C218F24916792C21008B57BA /* AnyJSON.m in Sources */,
154 | );
155 | runOnlyForDeploymentPostprocessing = 0;
156 | };
157 | /* End PBXSourcesBuildPhase section */
158 |
159 | /* Begin XCBuildConfiguration section */
160 | F8D31CEA167577D000AFB571 /* Debug */ = {
161 | isa = XCBuildConfiguration;
162 | buildSettings = {
163 | ALWAYS_SEARCH_USER_PATHS = NO;
164 | ARCHS = "$(ARCHS_STANDARD_64_BIT)";
165 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
166 | CLANG_CXX_LIBRARY = "libc++";
167 | CLANG_ENABLE_OBJC_ARC = YES;
168 | CLANG_WARN_EMPTY_BODY = YES;
169 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
170 | COPY_PHASE_STRIP = NO;
171 | GCC_C_LANGUAGE_STANDARD = gnu99;
172 | GCC_DYNAMIC_NO_PIC = NO;
173 | GCC_ENABLE_OBJC_EXCEPTIONS = YES;
174 | GCC_OPTIMIZATION_LEVEL = 0;
175 | GCC_PREPROCESSOR_DEFINITIONS = (
176 | "DEBUG=1",
177 | "$(inherited)",
178 | );
179 | GCC_SYMBOLS_PRIVATE_EXTERN = NO;
180 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
181 | GCC_WARN_ABOUT_RETURN_TYPE = YES;
182 | GCC_WARN_UNINITIALIZED_AUTOS = YES;
183 | GCC_WARN_UNUSED_VARIABLE = YES;
184 | MACOSX_DEPLOYMENT_TARGET = 10.8;
185 | ONLY_ACTIVE_ARCH = YES;
186 | SDKROOT = macosx;
187 | };
188 | name = Debug;
189 | };
190 | F8D31CEB167577D000AFB571 /* Release */ = {
191 | isa = XCBuildConfiguration;
192 | buildSettings = {
193 | ALWAYS_SEARCH_USER_PATHS = NO;
194 | ARCHS = "$(ARCHS_STANDARD_64_BIT)";
195 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
196 | CLANG_CXX_LIBRARY = "libc++";
197 | CLANG_ENABLE_OBJC_ARC = YES;
198 | CLANG_WARN_EMPTY_BODY = YES;
199 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
200 | COPY_PHASE_STRIP = YES;
201 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
202 | GCC_C_LANGUAGE_STANDARD = gnu99;
203 | GCC_ENABLE_OBJC_EXCEPTIONS = YES;
204 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
205 | GCC_WARN_ABOUT_RETURN_TYPE = YES;
206 | GCC_WARN_UNINITIALIZED_AUTOS = YES;
207 | GCC_WARN_UNUSED_VARIABLE = YES;
208 | MACOSX_DEPLOYMENT_TARGET = 10.8;
209 | SDKROOT = macosx;
210 | };
211 | name = Release;
212 | };
213 | F8D31CED167577D000AFB571 /* Debug */ = {
214 | isa = XCBuildConfiguration;
215 | buildSettings = {
216 | ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
217 | GCC_PRECOMPILE_PREFIX_HEADER = YES;
218 | GCC_PREFIX_HEADER = Prefix.pch;
219 | PRODUCT_NAME = "$(TARGET_NAME)";
220 | };
221 | name = Debug;
222 | };
223 | F8D31CEE167577D000AFB571 /* Release */ = {
224 | isa = XCBuildConfiguration;
225 | buildSettings = {
226 | ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
227 | GCC_PRECOMPILE_PREFIX_HEADER = YES;
228 | GCC_PREFIX_HEADER = Prefix.pch;
229 | PRODUCT_NAME = "$(TARGET_NAME)";
230 | };
231 | name = Release;
232 | };
233 | /* End XCBuildConfiguration section */
234 |
235 | /* Begin XCConfigurationList section */
236 | F8D31CD7167577D000AFB571 /* Build configuration list for PBXProject "CLI" */ = {
237 | isa = XCConfigurationList;
238 | buildConfigurations = (
239 | F8D31CEA167577D000AFB571 /* Debug */,
240 | F8D31CEB167577D000AFB571 /* Release */,
241 | );
242 | defaultConfigurationIsVisible = 0;
243 | defaultConfigurationName = Release;
244 | };
245 | F8D31CEC167577D000AFB571 /* Build configuration list for PBXNativeTarget "anyjson" */ = {
246 | isa = XCConfigurationList;
247 | buildConfigurations = (
248 | F8D31CED167577D000AFB571 /* Debug */,
249 | F8D31CEE167577D000AFB571 /* Release */,
250 | );
251 | defaultConfigurationIsVisible = 0;
252 | defaultConfigurationName = Release;
253 | };
254 | /* End XCConfigurationList section */
255 | };
256 | rootObject = F8D31CD4167577D000AFB571 /* Project object */;
257 | }
258 |
--------------------------------------------------------------------------------
/CLI/CLI.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/CLI/Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'CLI' target in the 'CLI' project
3 | //
4 |
5 | #ifdef __OBJC__
6 | #import
7 | #endif
8 |
--------------------------------------------------------------------------------
/CLI/main.m:
--------------------------------------------------------------------------------
1 | // anyjson.m
2 | //
3 | // Copyright (c) 2012 Cédric Luthi (https://twitter.com/0xced)
4 | //
5 | // Permission is hereby granted, free of charge, to any person obtaining a copy
6 | // of this software and associated documentation files (the "Software"), to deal
7 | // in the Software without restriction, including without limitation the rights
8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | // copies of the Software, and to permit persons to whom the Software is
10 | // furnished to do so, subject to the following conditions:
11 | //
12 | // The above copyright notice and this permission notice shall be included in
13 | // all copies or substantial portions of the Software.
14 | //
15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | // THE SOFTWARE.
22 |
23 | #import
24 | #import
25 |
26 | void ExitWithError(NSString *message, id error) {
27 | NSDictionary *environment = [[NSProcessInfo processInfo] environment];
28 | BOOL term = [environment objectForKey:@"TERM"] != nil;
29 | BOOL xcodeColors = [[environment objectForKey:@"XcodeColors"] boolValue];
30 | NSString *userInfo = [error isKindOfClass:[NSError class]] ? [@"\n" stringByAppendingString:[[error userInfo] description]] : @"";
31 | NSLog(term || xcodeColors ? @"\e[1;31m%@:\e[m %@%@" : @"%@: %@%@", message, [error description], userInfo);
32 | exit(EXIT_FAILURE);
33 | }
34 |
35 | void LoadDylib(NSString *dylibPath) {
36 | if (!dylibPath) {
37 | return;
38 | }
39 |
40 | NSBundle *dylibBundle = [NSBundle bundleWithPath:dylibPath];
41 | if (dylibBundle) {
42 | NSError *loadError = nil;
43 | BOOL loaded = [dylibBundle loadAndReturnError:&loadError];
44 | if (!loaded) {
45 | ExitWithError(@"Load Error", loadError);
46 | }
47 | } else {
48 | void *dylibHandle = dlopen([dylibPath fileSystemRepresentation], RTLD_LAZY);
49 | if (dylibPath && !dylibHandle) {
50 | ExitWithError(@"Load Error", @(dlerror()));
51 | }
52 | }
53 | }
54 |
55 | NSData * JSONRoundTrip(NSData *inputData, NSJSONReadingOptions readingOptions, NSJSONWritingOptions writingOptions) {
56 | NSError *readingError = nil;
57 | id object = [NSJSONSerialization JSONObjectWithData:inputData options:readingOptions error:&readingError];
58 | if (!object) {
59 | ExitWithError(@"Reading Error", readingError);
60 | }
61 |
62 | NSError *writingError = nil;
63 | NSData *outputData = [NSJSONSerialization dataWithJSONObject:object options:writingOptions error:&writingError];
64 | if (!outputData) {
65 | ExitWithError(@"Writing Error", writingError);
66 | }
67 |
68 | return outputData;
69 | }
70 |
71 | int main(int argc, const char * argv[]) {
72 | @autoreleasepool {
73 | if (argc < 2) {
74 | NSLog(@"Usage: %@ [-dylib dylib_path] [-readingOptions reading_options] [-writingOptions writing_options] JSON_string", [@(argv[0]) lastPathComponent]);
75 | return EXIT_FAILURE;
76 | }
77 | @try {
78 | LoadDylib([[NSUserDefaults standardUserDefaults] objectForKey:@"dylib"]);
79 |
80 | NSString *readingOptions = [[NSUserDefaults standardUserDefaults] objectForKey:@"readingOptions"];
81 | NSString *writingOptions = [[NSUserDefaults standardUserDefaults] objectForKey:@"writingOptions"];
82 |
83 | NSData *inputData = [@(argv[argc - 1]) dataUsingEncoding:NSUTF8StringEncoding];
84 | NSData *outputData = JSONRoundTrip(inputData, [readingOptions integerValue], [writingOptions integerValue]);
85 | NSLog(@"%@", [[NSString alloc] initWithData:outputData encoding:NSUTF8StringEncoding]);
86 | }
87 | @catch (NSException *exception) {
88 | ExitWithError(@"Exception", exception);
89 | }
90 | }
91 |
92 | return EXIT_SUCCESS;
93 | }
94 |
--------------------------------------------------------------------------------
/Example/AnyJSON Example.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 46;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | C20BA5D616591397009CDED0 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C20BA5D516591397009CDED0 /* UIKit.framework */; };
11 | C20BA5D816591397009CDED0 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C20BA5D716591397009CDED0 /* Foundation.framework */; };
12 | C20BA5DA16591397009CDED0 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C20BA5D916591397009CDED0 /* CoreGraphics.framework */; };
13 | C20BA5E216591397009CDED0 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = C20BA5E116591397009CDED0 /* main.m */; };
14 | C20BA5E616591397009CDED0 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = C20BA5E516591397009CDED0 /* AppDelegate.m */; };
15 | C20BA5EF16591398009CDED0 /* RootViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C20BA5EE16591398009CDED0 /* RootViewController.m */; };
16 | C20BA60116591451009CDED0 /* RootViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = C20BA60016591451009CDED0 /* RootViewController.xib */; };
17 | C21E2A49166E9CEB00F1E521 /* NSError+Extensions.m in Sources */ = {isa = PBXBuildFile; fileRef = C29752A01660159200C734D3 /* NSError+Extensions.m */; };
18 | C21E2A4A166E9CED00F1E521 /* NXDebug.m in Sources */ = {isa = PBXBuildFile; fileRef = C29752A21660159200C734D3 /* NXDebug.m */; };
19 | C21E2A4B166E9CEF00F1E521 /* NXJsonParser.m in Sources */ = {isa = PBXBuildFile; fileRef = C29752A41660159200C734D3 /* NXJsonParser.m */; };
20 | C21E2A4C166E9CF200F1E521 /* NXJsonSerializer.m in Sources */ = {isa = PBXBuildFile; fileRef = C29752A61660159200C734D3 /* NXJsonSerializer.m */; };
21 | C21E2A59166EA2E300F1E521 /* JSONKit.m in Sources */ = {isa = PBXBuildFile; fileRef = C297520C1660126900C734D3 /* JSONKit.m */; };
22 | C297520F1660126900C734D3 /* JSONKit.m in Sources */ = {isa = PBXBuildFile; fileRef = C297520C1660126900C734D3 /* JSONKit.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
23 | C29752131660129500C734D3 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = C20BA5E116591397009CDED0 /* main.m */; };
24 | C29752141660129500C734D3 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = C20BA5E516591397009CDED0 /* AppDelegate.m */; };
25 | C29752151660129500C734D3 /* RootViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C20BA5EE16591398009CDED0 /* RootViewController.m */; };
26 | C29752161660129500C734D3 /* AnyJSON.m in Sources */ = {isa = PBXBuildFile; fileRef = C20BA602165915D3009CDED0 /* AnyJSON.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
27 | C29752191660129500C734D3 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C20BA5D516591397009CDED0 /* UIKit.framework */; };
28 | C297521A1660129500C734D3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C20BA5D716591397009CDED0 /* Foundation.framework */; };
29 | C297521B1660129500C734D3 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C20BA5D916591397009CDED0 /* CoreGraphics.framework */; };
30 | C297521D1660129500C734D3 /* RootViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = C20BA60016591451009CDED0 /* RootViewController.xib */; };
31 | C2975277166014A700C734D3 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = C20BA5E116591397009CDED0 /* main.m */; };
32 | C2975278166014A700C734D3 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = C20BA5E516591397009CDED0 /* AppDelegate.m */; };
33 | C2975279166014A700C734D3 /* RootViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C20BA5EE16591398009CDED0 /* RootViewController.m */; };
34 | C297527D166014A700C734D3 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C20BA5D516591397009CDED0 /* UIKit.framework */; };
35 | C297527E166014A700C734D3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C20BA5D716591397009CDED0 /* Foundation.framework */; };
36 | C297527F166014A700C734D3 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C20BA5D916591397009CDED0 /* CoreGraphics.framework */; };
37 | C2975281166014A700C734D3 /* RootViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = C20BA60016591451009CDED0 /* RootViewController.xib */; };
38 | C297528B1660152200C734D3 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = C20BA5E116591397009CDED0 /* main.m */; };
39 | C297528C1660152200C734D3 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = C20BA5E516591397009CDED0 /* AppDelegate.m */; };
40 | C297528D1660152200C734D3 /* RootViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C20BA5EE16591398009CDED0 /* RootViewController.m */; };
41 | C297528E1660152200C734D3 /* AnyJSON.m in Sources */ = {isa = PBXBuildFile; fileRef = C20BA602165915D3009CDED0 /* AnyJSON.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
42 | C29752911660152200C734D3 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C20BA5D516591397009CDED0 /* UIKit.framework */; };
43 | C29752921660152200C734D3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C20BA5D716591397009CDED0 /* Foundation.framework */; };
44 | C29752931660152200C734D3 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C20BA5D916591397009CDED0 /* CoreGraphics.framework */; };
45 | C29752951660152200C734D3 /* RootViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = C20BA60016591451009CDED0 /* RootViewController.xib */; };
46 | C29752AD1660159200C734D3 /* NSError+Extensions.m in Sources */ = {isa = PBXBuildFile; fileRef = C29752A01660159200C734D3 /* NSError+Extensions.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
47 | C29752AE1660159200C734D3 /* NXDebug.m in Sources */ = {isa = PBXBuildFile; fileRef = C29752A21660159200C734D3 /* NXDebug.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
48 | C29752AF1660159200C734D3 /* NXJsonParser.m in Sources */ = {isa = PBXBuildFile; fileRef = C29752A41660159200C734D3 /* NXJsonParser.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
49 | C29752B01660159200C734D3 /* NXJsonSerializer.m in Sources */ = {isa = PBXBuildFile; fileRef = C29752A61660159200C734D3 /* NXJsonSerializer.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
50 | C2E7397F166041670042CF6D /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C2E7397E166041670042CF6D /* Default-568h@2x.png */; };
51 | C2E73980166041670042CF6D /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C2E7397E166041670042CF6D /* Default-568h@2x.png */; };
52 | C2E73981166041670042CF6D /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C2E7397E166041670042CF6D /* Default-568h@2x.png */; };
53 | C2E73982166041670042CF6D /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C2E7397E166041670042CF6D /* Default-568h@2x.png */; };
54 | C2E739881660F6900042CF6D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C20BA5D716591397009CDED0 /* Foundation.framework */; };
55 | C2E739931660F6BF0042CF6D /* AnyJSON.m in Sources */ = {isa = PBXBuildFile; fileRef = C20BA602165915D3009CDED0 /* AnyJSON.m */; };
56 | C2E739951660FA1F0042CF6D /* AnyJSON.m in Sources */ = {isa = PBXBuildFile; fileRef = C20BA602165915D3009CDED0 /* AnyJSON.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
57 | C2E739961660FA2D0042CF6D /* libAnyJSON.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C2E739871660F6900042CF6D /* libAnyJSON.a */; };
58 | C2E739991661030B0042CF6D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = C20BA5E116591397009CDED0 /* main.m */; };
59 | C2E7399A1661030B0042CF6D /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = C20BA5E516591397009CDED0 /* AppDelegate.m */; };
60 | C2E7399B1661030B0042CF6D /* RootViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C20BA5EE16591398009CDED0 /* RootViewController.m */; };
61 | C2E7399D1661030B0042CF6D /* JSONKit.m in Sources */ = {isa = PBXBuildFile; fileRef = C297520C1660126900C734D3 /* JSONKit.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
62 | C2E7399F1661030B0042CF6D /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C20BA5D516591397009CDED0 /* UIKit.framework */; };
63 | C2E739A01661030B0042CF6D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C20BA5D716591397009CDED0 /* Foundation.framework */; };
64 | C2E739A11661030B0042CF6D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C20BA5D916591397009CDED0 /* CoreGraphics.framework */; };
65 | C2E739A31661030B0042CF6D /* RootViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = C20BA60016591451009CDED0 /* RootViewController.xib */; };
66 | C2E739A41661030B0042CF6D /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C2E7397E166041670042CF6D /* Default-568h@2x.png */; };
67 | C2E739AB166103430042CF6D /* libAnyJSON.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C2E739871660F6900042CF6D /* libAnyJSON.a */; };
68 | /* End PBXBuildFile section */
69 |
70 | /* Begin PBXContainerItemProxy section */
71 | F8BA3D39167581E200B99B93 /* PBXContainerItemProxy */ = {
72 | isa = PBXContainerItemProxy;
73 | containerPortal = C29752501660145700C734D3 /* SBJson.xcodeproj */;
74 | proxyType = 2;
75 | remoteGlobalIDString = BC12323D1391D5CC00131607;
76 | remoteInfo = SBJson;
77 | };
78 | F8BA3D3B167581E200B99B93 /* PBXContainerItemProxy */ = {
79 | isa = PBXContainerItemProxy;
80 | containerPortal = C29752501660145700C734D3 /* SBJson.xcodeproj */;
81 | proxyType = 2;
82 | remoteGlobalIDString = BC1232521391D5CC00131607;
83 | remoteInfo = SBJsonTests;
84 | };
85 | F8BA3D3D167581E200B99B93 /* PBXContainerItemProxy */ = {
86 | isa = PBXContainerItemProxy;
87 | containerPortal = C29752501660145700C734D3 /* SBJson.xcodeproj */;
88 | proxyType = 2;
89 | remoteGlobalIDString = BCC2626913920FC7003D9994;
90 | remoteInfo = "sbjson-ios";
91 | };
92 | F8BA3D3F167581E200B99B93 /* PBXContainerItemProxy */ = {
93 | isa = PBXContainerItemProxy;
94 | containerPortal = C29752501660145700C734D3 /* SBJson.xcodeproj */;
95 | proxyType = 2;
96 | remoteGlobalIDString = BCC2627313920FC7003D9994;
97 | remoteInfo = "sbjson-iosTests";
98 | };
99 | F8BA3D4B167581FE00B99B93 /* PBXContainerItemProxy */ = {
100 | isa = PBXContainerItemProxy;
101 | containerPortal = C297522C1660139A00C734D3 /* YAJLiOS.xcodeproj */;
102 | proxyType = 2;
103 | remoteGlobalIDString = 0065977C11BEEF4000E89ABD;
104 | remoteInfo = "YAJLiOS (Device)";
105 | };
106 | F8BA3D4D167581FE00B99B93 /* PBXContainerItemProxy */ = {
107 | isa = PBXContainerItemProxy;
108 | containerPortal = C297522C1660139A00C734D3 /* YAJLiOS.xcodeproj */;
109 | proxyType = 2;
110 | remoteGlobalIDString = 006597AC11BEEF4800E89ABD;
111 | remoteInfo = "YAJLiOS (Simulator)";
112 | };
113 | F8BA3D4F167581FE00B99B93 /* PBXContainerItemProxy */ = {
114 | isa = PBXContainerItemProxy;
115 | containerPortal = C297522C1660139A00C734D3 /* YAJLiOS.xcodeproj */;
116 | proxyType = 2;
117 | remoteGlobalIDString = 006597EA11BEEF5400E89ABD;
118 | remoteInfo = Tests;
119 | };
120 | F8BA3D591675820600B99B93 /* PBXContainerItemProxy */ = {
121 | isa = PBXContainerItemProxy;
122 | containerPortal = C21E2A60166EA88400F1E521 /* YAJL.xcodeproj */;
123 | proxyType = 2;
124 | remoteGlobalIDString = 8DC2EF5B0486A6940098B216;
125 | remoteInfo = YAJL;
126 | };
127 | F8BA3D5B1675820600B99B93 /* PBXContainerItemProxy */ = {
128 | isa = PBXContainerItemProxy;
129 | containerPortal = C21E2A60166EA88400F1E521 /* YAJL.xcodeproj */;
130 | proxyType = 2;
131 | remoteGlobalIDString = 00E5DDF80F5B6E3E00C11F1D;
132 | remoteInfo = Tests;
133 | };
134 | /* End PBXContainerItemProxy section */
135 |
136 | /* Begin PBXCopyFilesBuildPhase section */
137 | C2E739851660F6900042CF6D /* CopyFiles */ = {
138 | isa = PBXCopyFilesBuildPhase;
139 | buildActionMask = 2147483647;
140 | dstPath = "include/${PRODUCT_NAME}";
141 | dstSubfolderSpec = 16;
142 | files = (
143 | );
144 | runOnlyForDeploymentPostprocessing = 0;
145 | };
146 | /* End PBXCopyFilesBuildPhase section */
147 |
148 | /* Begin PBXFileReference section */
149 | C20BA5D116591397009CDED0 /* AnyJSON+JSONKit.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "AnyJSON+JSONKit.app"; sourceTree = BUILT_PRODUCTS_DIR; };
150 | C20BA5D516591397009CDED0 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
151 | C20BA5D716591397009CDED0 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
152 | C20BA5D916591397009CDED0 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
153 | C20BA5DD16591397009CDED0 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; };
154 | C20BA5E116591397009CDED0 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; };
155 | C20BA5E316591397009CDED0 /* Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Prefix.pch; sourceTree = ""; };
156 | C20BA5E416591397009CDED0 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; };
157 | C20BA5E516591397009CDED0 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; };
158 | C20BA5ED16591398009CDED0 /* RootViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RootViewController.h; sourceTree = ""; };
159 | C20BA5EE16591398009CDED0 /* RootViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RootViewController.m; sourceTree = ""; };
160 | C20BA60016591451009CDED0 /* RootViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RootViewController.xib; sourceTree = ""; };
161 | C20BA602165915D3009CDED0 /* AnyJSON.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AnyJSON.m; sourceTree = ""; };
162 | C21E2A45166E9CC300F1E521 /* NextiveJson.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = NextiveJson.dylib; sourceTree = BUILT_PRODUCTS_DIR; };
163 | C21E2A58166EA2C300F1E521 /* JSONKit.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = JSONKit.dylib; sourceTree = BUILT_PRODUCTS_DIR; };
164 | C21E2A60166EA88400F1E521 /* YAJL.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = YAJL.xcodeproj; path = YAJL/Project/YAJL.xcodeproj; sourceTree = ""; };
165 | C22FAD7D16714E7000AD3D85 /* AnyJSON.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AnyJSON.h; sourceTree = ""; };
166 | C297520C1660126900C734D3 /* JSONKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JSONKit.m; sourceTree = ""; };
167 | C29752211660129500C734D3 /* AnyJSON+YAJL.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "AnyJSON+YAJL.app"; sourceTree = BUILT_PRODUCTS_DIR; };
168 | C297522C1660139A00C734D3 /* YAJLiOS.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = YAJLiOS.xcodeproj; path = "YAJL/Project-iOS/YAJLiOS.xcodeproj"; sourceTree = ""; };
169 | C29752501660145700C734D3 /* SBJson.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = SBJson.xcodeproj; path = SBJson/SBJson.xcodeproj; sourceTree = ""; };
170 | C2975285166014A700C734D3 /* AnyJSON+SBJson.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "AnyJSON+SBJson.app"; sourceTree = BUILT_PRODUCTS_DIR; };
171 | C29752991660152200C734D3 /* AnyJSON+NextiveJson.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "AnyJSON+NextiveJson.app"; sourceTree = BUILT_PRODUCTS_DIR; };
172 | C297529F1660159200C734D3 /* NSError+Extensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSError+Extensions.h"; sourceTree = ""; };
173 | C29752A01660159200C734D3 /* NSError+Extensions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSError+Extensions.m"; sourceTree = ""; };
174 | C29752A11660159200C734D3 /* NXDebug.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NXDebug.h; sourceTree = ""; };
175 | C29752A21660159200C734D3 /* NXDebug.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NXDebug.m; sourceTree = ""; };
176 | C29752A31660159200C734D3 /* NXJsonParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NXJsonParser.h; sourceTree = ""; };
177 | C29752A41660159200C734D3 /* NXJsonParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NXJsonParser.m; sourceTree = ""; };
178 | C29752A51660159200C734D3 /* NXJsonSerializer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NXJsonSerializer.h; sourceTree = ""; };
179 | C29752A61660159200C734D3 /* NXJsonSerializer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NXJsonSerializer.m; sourceTree = ""; };
180 | C29752A71660159200C734D3 /* NXSerializable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NXSerializable.h; sourceTree = ""; };
181 | C29752B3166015AD00C734D3 /* JSONKit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = JSONKit.h; sourceTree = ""; };
182 | C2E7397E166041670042CF6D /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = ""; };
183 | C2E739871660F6900042CF6D /* libAnyJSON.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libAnyJSON.a; sourceTree = BUILT_PRODUCTS_DIR; };
184 | C2E739A81661030B0042CF6D /* AnyJSON+JSONKit-Static.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "AnyJSON+JSONKit-Static.app"; sourceTree = BUILT_PRODUCTS_DIR; };
185 | /* End PBXFileReference section */
186 |
187 | /* Begin PBXFrameworksBuildPhase section */
188 | C20BA5CE16591397009CDED0 /* Frameworks */ = {
189 | isa = PBXFrameworksBuildPhase;
190 | buildActionMask = 2147483647;
191 | files = (
192 | C20BA5D616591397009CDED0 /* UIKit.framework in Frameworks */,
193 | C20BA5D816591397009CDED0 /* Foundation.framework in Frameworks */,
194 | C20BA5DA16591397009CDED0 /* CoreGraphics.framework in Frameworks */,
195 | );
196 | runOnlyForDeploymentPostprocessing = 0;
197 | };
198 | C21E2A42166E9CC300F1E521 /* Frameworks */ = {
199 | isa = PBXFrameworksBuildPhase;
200 | buildActionMask = 2147483647;
201 | files = (
202 | );
203 | runOnlyForDeploymentPostprocessing = 0;
204 | };
205 | C21E2A53166EA2C300F1E521 /* Frameworks */ = {
206 | isa = PBXFrameworksBuildPhase;
207 | buildActionMask = 2147483647;
208 | files = (
209 | );
210 | runOnlyForDeploymentPostprocessing = 0;
211 | };
212 | C29752181660129500C734D3 /* Frameworks */ = {
213 | isa = PBXFrameworksBuildPhase;
214 | buildActionMask = 2147483647;
215 | files = (
216 | C29752191660129500C734D3 /* UIKit.framework in Frameworks */,
217 | C297521A1660129500C734D3 /* Foundation.framework in Frameworks */,
218 | C297521B1660129500C734D3 /* CoreGraphics.framework in Frameworks */,
219 | );
220 | runOnlyForDeploymentPostprocessing = 0;
221 | };
222 | C297527C166014A700C734D3 /* Frameworks */ = {
223 | isa = PBXFrameworksBuildPhase;
224 | buildActionMask = 2147483647;
225 | files = (
226 | C297527D166014A700C734D3 /* UIKit.framework in Frameworks */,
227 | C297527E166014A700C734D3 /* Foundation.framework in Frameworks */,
228 | C297527F166014A700C734D3 /* CoreGraphics.framework in Frameworks */,
229 | C2E739961660FA2D0042CF6D /* libAnyJSON.a in Frameworks */,
230 | );
231 | runOnlyForDeploymentPostprocessing = 0;
232 | };
233 | C29752901660152200C734D3 /* Frameworks */ = {
234 | isa = PBXFrameworksBuildPhase;
235 | buildActionMask = 2147483647;
236 | files = (
237 | C29752911660152200C734D3 /* UIKit.framework in Frameworks */,
238 | C29752921660152200C734D3 /* Foundation.framework in Frameworks */,
239 | C29752931660152200C734D3 /* CoreGraphics.framework in Frameworks */,
240 | );
241 | runOnlyForDeploymentPostprocessing = 0;
242 | };
243 | C2E739841660F6900042CF6D /* Frameworks */ = {
244 | isa = PBXFrameworksBuildPhase;
245 | buildActionMask = 2147483647;
246 | files = (
247 | C2E739881660F6900042CF6D /* Foundation.framework in Frameworks */,
248 | );
249 | runOnlyForDeploymentPostprocessing = 0;
250 | };
251 | C2E7399E1661030B0042CF6D /* Frameworks */ = {
252 | isa = PBXFrameworksBuildPhase;
253 | buildActionMask = 2147483647;
254 | files = (
255 | C2E7399F1661030B0042CF6D /* UIKit.framework in Frameworks */,
256 | C2E739A01661030B0042CF6D /* Foundation.framework in Frameworks */,
257 | C2E739A11661030B0042CF6D /* CoreGraphics.framework in Frameworks */,
258 | C2E739AB166103430042CF6D /* libAnyJSON.a in Frameworks */,
259 | );
260 | runOnlyForDeploymentPostprocessing = 0;
261 | };
262 | /* End PBXFrameworksBuildPhase section */
263 |
264 | /* Begin PBXGroup section */
265 | C20BA5C616591397009CDED0 = {
266 | isa = PBXGroup;
267 | children = (
268 | C20BA5DB16591397009CDED0 /* AnyJSON Example */,
269 | F85092591675527000E10C02 /* AnyJSON */,
270 | C29752081660126000C734D3 /* Libraries */,
271 | C20BA5D416591397009CDED0 /* Frameworks */,
272 | C20BA5D216591397009CDED0 /* Products */,
273 | );
274 | indentWidth = 4;
275 | sourceTree = "";
276 | tabWidth = 4;
277 | usesTabs = 0;
278 | };
279 | C20BA5D216591397009CDED0 /* Products */ = {
280 | isa = PBXGroup;
281 | children = (
282 | C20BA5D116591397009CDED0 /* AnyJSON+JSONKit.app */,
283 | C29752211660129500C734D3 /* AnyJSON+YAJL.app */,
284 | C2975285166014A700C734D3 /* AnyJSON+SBJson.app */,
285 | C29752991660152200C734D3 /* AnyJSON+NextiveJson.app */,
286 | C2E739871660F6900042CF6D /* libAnyJSON.a */,
287 | C2E739A81661030B0042CF6D /* AnyJSON+JSONKit-Static.app */,
288 | C21E2A45166E9CC300F1E521 /* NextiveJson.dylib */,
289 | C21E2A58166EA2C300F1E521 /* JSONKit.dylib */,
290 | );
291 | name = Products;
292 | sourceTree = "";
293 | };
294 | C20BA5D416591397009CDED0 /* Frameworks */ = {
295 | isa = PBXGroup;
296 | children = (
297 | C20BA5D516591397009CDED0 /* UIKit.framework */,
298 | C20BA5D716591397009CDED0 /* Foundation.framework */,
299 | C20BA5D916591397009CDED0 /* CoreGraphics.framework */,
300 | );
301 | name = Frameworks;
302 | sourceTree = "";
303 | };
304 | C20BA5DB16591397009CDED0 /* AnyJSON Example */ = {
305 | isa = PBXGroup;
306 | children = (
307 | C20BA5E416591397009CDED0 /* AppDelegate.h */,
308 | C20BA5E516591397009CDED0 /* AppDelegate.m */,
309 | C20BA5ED16591398009CDED0 /* RootViewController.h */,
310 | C20BA5EE16591398009CDED0 /* RootViewController.m */,
311 | C20BA60016591451009CDED0 /* RootViewController.xib */,
312 | C20BA5DC16591397009CDED0 /* Supporting Files */,
313 | );
314 | name = "AnyJSON Example";
315 | path = ./;
316 | sourceTree = "";
317 | };
318 | C20BA5DC16591397009CDED0 /* Supporting Files */ = {
319 | isa = PBXGroup;
320 | children = (
321 | C2E7397E166041670042CF6D /* Default-568h@2x.png */,
322 | C20BA5DD16591397009CDED0 /* Info.plist */,
323 | C20BA5E316591397009CDED0 /* Prefix.pch */,
324 | C20BA5E116591397009CDED0 /* main.m */,
325 | );
326 | name = "Supporting Files";
327 | sourceTree = "";
328 | };
329 | C29752081660126000C734D3 /* Libraries */ = {
330 | isa = PBXGroup;
331 | children = (
332 | C29752091660126900C734D3 /* JSONKit */,
333 | C297529E1660159200C734D3 /* NextiveJson */,
334 | C29752501660145700C734D3 /* SBJson.xcodeproj */,
335 | C21E2A60166EA88400F1E521 /* YAJL.xcodeproj */,
336 | C297522C1660139A00C734D3 /* YAJLiOS.xcodeproj */,
337 | );
338 | path = Libraries;
339 | sourceTree = "";
340 | };
341 | C29752091660126900C734D3 /* JSONKit */ = {
342 | isa = PBXGroup;
343 | children = (
344 | C29752B3166015AD00C734D3 /* JSONKit.h */,
345 | C297520C1660126900C734D3 /* JSONKit.m */,
346 | );
347 | path = JSONKit;
348 | sourceTree = "";
349 | };
350 | C297529E1660159200C734D3 /* NextiveJson */ = {
351 | isa = PBXGroup;
352 | children = (
353 | C297529F1660159200C734D3 /* NSError+Extensions.h */,
354 | C29752A01660159200C734D3 /* NSError+Extensions.m */,
355 | C29752A11660159200C734D3 /* NXDebug.h */,
356 | C29752A21660159200C734D3 /* NXDebug.m */,
357 | C29752A31660159200C734D3 /* NXJsonParser.h */,
358 | C29752A41660159200C734D3 /* NXJsonParser.m */,
359 | C29752A51660159200C734D3 /* NXJsonSerializer.h */,
360 | C29752A61660159200C734D3 /* NXJsonSerializer.m */,
361 | C29752A71660159200C734D3 /* NXSerializable.h */,
362 | );
363 | name = NextiveJson;
364 | path = NextiveJson/Json;
365 | sourceTree = "";
366 | };
367 | F85092591675527000E10C02 /* AnyJSON */ = {
368 | isa = PBXGroup;
369 | children = (
370 | C22FAD7D16714E7000AD3D85 /* AnyJSON.h */,
371 | C20BA602165915D3009CDED0 /* AnyJSON.m */,
372 | );
373 | name = AnyJSON;
374 | path = ../AnyJSON;
375 | sourceTree = "";
376 | };
377 | F8BA3D33167581E200B99B93 /* Products */ = {
378 | isa = PBXGroup;
379 | children = (
380 | F8BA3D3A167581E200B99B93 /* SBJson.framework */,
381 | F8BA3D3C167581E200B99B93 /* SBJsonTests.octest */,
382 | F8BA3D3E167581E200B99B93 /* libsbjson-ios.a */,
383 | F8BA3D40167581E200B99B93 /* sbjson-iosTests.octest */,
384 | );
385 | name = Products;
386 | sourceTree = "";
387 | };
388 | F8BA3D45167581FE00B99B93 /* Products */ = {
389 | isa = PBXGroup;
390 | children = (
391 | F8BA3D4C167581FE00B99B93 /* libYAJLiOSDevice.a */,
392 | F8BA3D4E167581FE00B99B93 /* libYAJLiOSSimulator.a */,
393 | F8BA3D50167581FE00B99B93 /* Tests.app */,
394 | );
395 | name = Products;
396 | sourceTree = "";
397 | };
398 | F8BA3D551675820600B99B93 /* Products */ = {
399 | isa = PBXGroup;
400 | children = (
401 | F8BA3D5A1675820600B99B93 /* YAJL.framework */,
402 | F8BA3D5C1675820600B99B93 /* Tests.framework */,
403 | );
404 | name = Products;
405 | sourceTree = "";
406 | };
407 | /* End PBXGroup section */
408 |
409 | /* Begin PBXHeadersBuildPhase section */
410 | C21E2A43166E9CC300F1E521 /* Headers */ = {
411 | isa = PBXHeadersBuildPhase;
412 | buildActionMask = 2147483647;
413 | files = (
414 | );
415 | runOnlyForDeploymentPostprocessing = 0;
416 | };
417 | C21E2A54166EA2C300F1E521 /* Headers */ = {
418 | isa = PBXHeadersBuildPhase;
419 | buildActionMask = 2147483647;
420 | files = (
421 | );
422 | runOnlyForDeploymentPostprocessing = 0;
423 | };
424 | /* End PBXHeadersBuildPhase section */
425 |
426 | /* Begin PBXNativeTarget section */
427 | C20BA5D016591397009CDED0 /* AnyJSON+JSONKit */ = {
428 | isa = PBXNativeTarget;
429 | buildConfigurationList = C20BA5F816591398009CDED0 /* Build configuration list for PBXNativeTarget "AnyJSON+JSONKit" */;
430 | buildPhases = (
431 | C20BA5CD16591397009CDED0 /* Sources */,
432 | C20BA5CE16591397009CDED0 /* Frameworks */,
433 | C20BA5CF16591397009CDED0 /* Resources */,
434 | );
435 | buildRules = (
436 | );
437 | dependencies = (
438 | );
439 | name = "AnyJSON+JSONKit";
440 | productName = "AnyJSON Example";
441 | productReference = C20BA5D116591397009CDED0 /* AnyJSON+JSONKit.app */;
442 | productType = "com.apple.product-type.application";
443 | };
444 | C21E2A44166E9CC300F1E521 /* NextiveJson */ = {
445 | isa = PBXNativeTarget;
446 | buildConfigurationList = C21E2A46166E9CC300F1E521 /* Build configuration list for PBXNativeTarget "NextiveJson" */;
447 | buildPhases = (
448 | C21E2A41166E9CC300F1E521 /* Sources */,
449 | C21E2A42166E9CC300F1E521 /* Frameworks */,
450 | C21E2A43166E9CC300F1E521 /* Headers */,
451 | );
452 | buildRules = (
453 | );
454 | dependencies = (
455 | );
456 | name = NextiveJson;
457 | productName = NextiveJson;
458 | productReference = C21E2A45166E9CC300F1E521 /* NextiveJson.dylib */;
459 | productType = "com.apple.product-type.library.dynamic";
460 | };
461 | C21E2A4D166EA2C300F1E521 /* JSONKit */ = {
462 | isa = PBXNativeTarget;
463 | buildConfigurationList = C21E2A55166EA2C300F1E521 /* Build configuration list for PBXNativeTarget "JSONKit" */;
464 | buildPhases = (
465 | C21E2A4E166EA2C300F1E521 /* Sources */,
466 | C21E2A53166EA2C300F1E521 /* Frameworks */,
467 | C21E2A54166EA2C300F1E521 /* Headers */,
468 | );
469 | buildRules = (
470 | );
471 | dependencies = (
472 | );
473 | name = JSONKit;
474 | productName = NextiveJson;
475 | productReference = C21E2A58166EA2C300F1E521 /* JSONKit.dylib */;
476 | productType = "com.apple.product-type.library.dynamic";
477 | };
478 | C29752111660129500C734D3 /* AnyJSON+YAJL */ = {
479 | isa = PBXNativeTarget;
480 | buildConfigurationList = C297521E1660129500C734D3 /* Build configuration list for PBXNativeTarget "AnyJSON+YAJL" */;
481 | buildPhases = (
482 | C29752121660129500C734D3 /* Sources */,
483 | C29752181660129500C734D3 /* Frameworks */,
484 | C297521C1660129500C734D3 /* Resources */,
485 | );
486 | buildRules = (
487 | );
488 | dependencies = (
489 | );
490 | name = "AnyJSON+YAJL";
491 | productName = "AnyJSON Example";
492 | productReference = C29752211660129500C734D3 /* AnyJSON+YAJL.app */;
493 | productType = "com.apple.product-type.application";
494 | };
495 | C2975275166014A700C734D3 /* AnyJSON+SBJson */ = {
496 | isa = PBXNativeTarget;
497 | buildConfigurationList = C2975282166014A700C734D3 /* Build configuration list for PBXNativeTarget "AnyJSON+SBJson" */;
498 | buildPhases = (
499 | C2975276166014A700C734D3 /* Sources */,
500 | C297527C166014A700C734D3 /* Frameworks */,
501 | C2975280166014A700C734D3 /* Resources */,
502 | );
503 | buildRules = (
504 | );
505 | dependencies = (
506 | );
507 | name = "AnyJSON+SBJson";
508 | productName = "AnyJSON Example";
509 | productReference = C2975285166014A700C734D3 /* AnyJSON+SBJson.app */;
510 | productType = "com.apple.product-type.application";
511 | };
512 | C29752891660152200C734D3 /* AnyJSON+NextiveJson */ = {
513 | isa = PBXNativeTarget;
514 | buildConfigurationList = C29752961660152200C734D3 /* Build configuration list for PBXNativeTarget "AnyJSON+NextiveJson" */;
515 | buildPhases = (
516 | C297528A1660152200C734D3 /* Sources */,
517 | C29752901660152200C734D3 /* Frameworks */,
518 | C29752941660152200C734D3 /* Resources */,
519 | );
520 | buildRules = (
521 | );
522 | dependencies = (
523 | );
524 | name = "AnyJSON+NextiveJson";
525 | productName = "AnyJSON Example";
526 | productReference = C29752991660152200C734D3 /* AnyJSON+NextiveJson.app */;
527 | productType = "com.apple.product-type.application";
528 | };
529 | C2E739861660F6900042CF6D /* AnyJSON */ = {
530 | isa = PBXNativeTarget;
531 | buildConfigurationList = C2E739901660F6900042CF6D /* Build configuration list for PBXNativeTarget "AnyJSON" */;
532 | buildPhases = (
533 | C2E739831660F6900042CF6D /* Sources */,
534 | C2E739841660F6900042CF6D /* Frameworks */,
535 | C2E739851660F6900042CF6D /* CopyFiles */,
536 | );
537 | buildRules = (
538 | );
539 | dependencies = (
540 | );
541 | name = AnyJSON;
542 | productName = AnyJSON;
543 | productReference = C2E739871660F6900042CF6D /* libAnyJSON.a */;
544 | productType = "com.apple.product-type.library.static";
545 | };
546 | C2E739971661030B0042CF6D /* AnyJSON+JSONKit-Static */ = {
547 | isa = PBXNativeTarget;
548 | buildConfigurationList = C2E739A51661030B0042CF6D /* Build configuration list for PBXNativeTarget "AnyJSON+JSONKit-Static" */;
549 | buildPhases = (
550 | C2E739981661030B0042CF6D /* Sources */,
551 | C2E7399E1661030B0042CF6D /* Frameworks */,
552 | C2E739A21661030B0042CF6D /* Resources */,
553 | );
554 | buildRules = (
555 | );
556 | dependencies = (
557 | );
558 | name = "AnyJSON+JSONKit-Static";
559 | productName = "AnyJSON Example";
560 | productReference = C2E739A81661030B0042CF6D /* AnyJSON+JSONKit-Static.app */;
561 | productType = "com.apple.product-type.application";
562 | };
563 | /* End PBXNativeTarget section */
564 |
565 | /* Begin PBXProject section */
566 | C20BA5C816591397009CDED0 /* Project object */ = {
567 | isa = PBXProject;
568 | attributes = {
569 | LastUpgradeCheck = 0450;
570 | };
571 | buildConfigurationList = C20BA5CB16591397009CDED0 /* Build configuration list for PBXProject "AnyJSON Example" */;
572 | compatibilityVersion = "Xcode 3.2";
573 | developmentRegion = English;
574 | hasScannedForEncodings = 0;
575 | knownRegions = (
576 | en,
577 | English,
578 | );
579 | mainGroup = C20BA5C616591397009CDED0;
580 | productRefGroup = C20BA5D216591397009CDED0 /* Products */;
581 | projectDirPath = "";
582 | projectReferences = (
583 | {
584 | ProductGroup = F8BA3D33167581E200B99B93 /* Products */;
585 | ProjectRef = C29752501660145700C734D3 /* SBJson.xcodeproj */;
586 | },
587 | {
588 | ProductGroup = F8BA3D551675820600B99B93 /* Products */;
589 | ProjectRef = C21E2A60166EA88400F1E521 /* YAJL.xcodeproj */;
590 | },
591 | {
592 | ProductGroup = F8BA3D45167581FE00B99B93 /* Products */;
593 | ProjectRef = C297522C1660139A00C734D3 /* YAJLiOS.xcodeproj */;
594 | },
595 | );
596 | projectRoot = "";
597 | targets = (
598 | C20BA5D016591397009CDED0 /* AnyJSON+JSONKit */,
599 | C2E739971661030B0042CF6D /* AnyJSON+JSONKit-Static */,
600 | C29752891660152200C734D3 /* AnyJSON+NextiveJson */,
601 | C2975275166014A700C734D3 /* AnyJSON+SBJson */,
602 | C29752111660129500C734D3 /* AnyJSON+YAJL */,
603 | C2E739861660F6900042CF6D /* AnyJSON */,
604 | C21E2A4D166EA2C300F1E521 /* JSONKit */,
605 | C21E2A44166E9CC300F1E521 /* NextiveJson */,
606 | );
607 | };
608 | /* End PBXProject section */
609 |
610 | /* Begin PBXReferenceProxy section */
611 | F8BA3D3A167581E200B99B93 /* SBJson.framework */ = {
612 | isa = PBXReferenceProxy;
613 | fileType = wrapper.framework;
614 | path = SBJson.framework;
615 | remoteRef = F8BA3D39167581E200B99B93 /* PBXContainerItemProxy */;
616 | sourceTree = BUILT_PRODUCTS_DIR;
617 | };
618 | F8BA3D3C167581E200B99B93 /* SBJsonTests.octest */ = {
619 | isa = PBXReferenceProxy;
620 | fileType = wrapper.cfbundle;
621 | path = SBJsonTests.octest;
622 | remoteRef = F8BA3D3B167581E200B99B93 /* PBXContainerItemProxy */;
623 | sourceTree = BUILT_PRODUCTS_DIR;
624 | };
625 | F8BA3D3E167581E200B99B93 /* libsbjson-ios.a */ = {
626 | isa = PBXReferenceProxy;
627 | fileType = archive.ar;
628 | path = "libsbjson-ios.a";
629 | remoteRef = F8BA3D3D167581E200B99B93 /* PBXContainerItemProxy */;
630 | sourceTree = BUILT_PRODUCTS_DIR;
631 | };
632 | F8BA3D40167581E200B99B93 /* sbjson-iosTests.octest */ = {
633 | isa = PBXReferenceProxy;
634 | fileType = wrapper.cfbundle;
635 | path = "sbjson-iosTests.octest";
636 | remoteRef = F8BA3D3F167581E200B99B93 /* PBXContainerItemProxy */;
637 | sourceTree = BUILT_PRODUCTS_DIR;
638 | };
639 | F8BA3D4C167581FE00B99B93 /* libYAJLiOSDevice.a */ = {
640 | isa = PBXReferenceProxy;
641 | fileType = archive.ar;
642 | path = libYAJLiOSDevice.a;
643 | remoteRef = F8BA3D4B167581FE00B99B93 /* PBXContainerItemProxy */;
644 | sourceTree = BUILT_PRODUCTS_DIR;
645 | };
646 | F8BA3D4E167581FE00B99B93 /* libYAJLiOSSimulator.a */ = {
647 | isa = PBXReferenceProxy;
648 | fileType = archive.ar;
649 | path = libYAJLiOSSimulator.a;
650 | remoteRef = F8BA3D4D167581FE00B99B93 /* PBXContainerItemProxy */;
651 | sourceTree = BUILT_PRODUCTS_DIR;
652 | };
653 | F8BA3D50167581FE00B99B93 /* Tests.app */ = {
654 | isa = PBXReferenceProxy;
655 | fileType = wrapper.application;
656 | path = Tests.app;
657 | remoteRef = F8BA3D4F167581FE00B99B93 /* PBXContainerItemProxy */;
658 | sourceTree = BUILT_PRODUCTS_DIR;
659 | };
660 | F8BA3D5A1675820600B99B93 /* YAJL.framework */ = {
661 | isa = PBXReferenceProxy;
662 | fileType = wrapper.framework;
663 | path = YAJL.framework;
664 | remoteRef = F8BA3D591675820600B99B93 /* PBXContainerItemProxy */;
665 | sourceTree = BUILT_PRODUCTS_DIR;
666 | };
667 | F8BA3D5C1675820600B99B93 /* Tests.framework */ = {
668 | isa = PBXReferenceProxy;
669 | fileType = wrapper.application;
670 | path = Tests.framework;
671 | remoteRef = F8BA3D5B1675820600B99B93 /* PBXContainerItemProxy */;
672 | sourceTree = BUILT_PRODUCTS_DIR;
673 | };
674 | /* End PBXReferenceProxy section */
675 |
676 | /* Begin PBXResourcesBuildPhase section */
677 | C20BA5CF16591397009CDED0 /* Resources */ = {
678 | isa = PBXResourcesBuildPhase;
679 | buildActionMask = 2147483647;
680 | files = (
681 | C20BA60116591451009CDED0 /* RootViewController.xib in Resources */,
682 | C2E7397F166041670042CF6D /* Default-568h@2x.png in Resources */,
683 | );
684 | runOnlyForDeploymentPostprocessing = 0;
685 | };
686 | C297521C1660129500C734D3 /* Resources */ = {
687 | isa = PBXResourcesBuildPhase;
688 | buildActionMask = 2147483647;
689 | files = (
690 | C297521D1660129500C734D3 /* RootViewController.xib in Resources */,
691 | C2E73982166041670042CF6D /* Default-568h@2x.png in Resources */,
692 | );
693 | runOnlyForDeploymentPostprocessing = 0;
694 | };
695 | C2975280166014A700C734D3 /* Resources */ = {
696 | isa = PBXResourcesBuildPhase;
697 | buildActionMask = 2147483647;
698 | files = (
699 | C2975281166014A700C734D3 /* RootViewController.xib in Resources */,
700 | C2E73981166041670042CF6D /* Default-568h@2x.png in Resources */,
701 | );
702 | runOnlyForDeploymentPostprocessing = 0;
703 | };
704 | C29752941660152200C734D3 /* Resources */ = {
705 | isa = PBXResourcesBuildPhase;
706 | buildActionMask = 2147483647;
707 | files = (
708 | C29752951660152200C734D3 /* RootViewController.xib in Resources */,
709 | C2E73980166041670042CF6D /* Default-568h@2x.png in Resources */,
710 | );
711 | runOnlyForDeploymentPostprocessing = 0;
712 | };
713 | C2E739A21661030B0042CF6D /* Resources */ = {
714 | isa = PBXResourcesBuildPhase;
715 | buildActionMask = 2147483647;
716 | files = (
717 | C2E739A31661030B0042CF6D /* RootViewController.xib in Resources */,
718 | C2E739A41661030B0042CF6D /* Default-568h@2x.png in Resources */,
719 | );
720 | runOnlyForDeploymentPostprocessing = 0;
721 | };
722 | /* End PBXResourcesBuildPhase section */
723 |
724 | /* Begin PBXSourcesBuildPhase section */
725 | C20BA5CD16591397009CDED0 /* Sources */ = {
726 | isa = PBXSourcesBuildPhase;
727 | buildActionMask = 2147483647;
728 | files = (
729 | C20BA5E216591397009CDED0 /* main.m in Sources */,
730 | C20BA5E616591397009CDED0 /* AppDelegate.m in Sources */,
731 | C20BA5EF16591398009CDED0 /* RootViewController.m in Sources */,
732 | C2E739951660FA1F0042CF6D /* AnyJSON.m in Sources */,
733 | C297520F1660126900C734D3 /* JSONKit.m in Sources */,
734 | );
735 | runOnlyForDeploymentPostprocessing = 0;
736 | };
737 | C21E2A41166E9CC300F1E521 /* Sources */ = {
738 | isa = PBXSourcesBuildPhase;
739 | buildActionMask = 2147483647;
740 | files = (
741 | C21E2A49166E9CEB00F1E521 /* NSError+Extensions.m in Sources */,
742 | C21E2A4A166E9CED00F1E521 /* NXDebug.m in Sources */,
743 | C21E2A4B166E9CEF00F1E521 /* NXJsonParser.m in Sources */,
744 | C21E2A4C166E9CF200F1E521 /* NXJsonSerializer.m in Sources */,
745 | );
746 | runOnlyForDeploymentPostprocessing = 0;
747 | };
748 | C21E2A4E166EA2C300F1E521 /* Sources */ = {
749 | isa = PBXSourcesBuildPhase;
750 | buildActionMask = 2147483647;
751 | files = (
752 | C21E2A59166EA2E300F1E521 /* JSONKit.m in Sources */,
753 | );
754 | runOnlyForDeploymentPostprocessing = 0;
755 | };
756 | C29752121660129500C734D3 /* Sources */ = {
757 | isa = PBXSourcesBuildPhase;
758 | buildActionMask = 2147483647;
759 | files = (
760 | C29752131660129500C734D3 /* main.m in Sources */,
761 | C29752141660129500C734D3 /* AppDelegate.m in Sources */,
762 | C29752151660129500C734D3 /* RootViewController.m in Sources */,
763 | C29752161660129500C734D3 /* AnyJSON.m in Sources */,
764 | );
765 | runOnlyForDeploymentPostprocessing = 0;
766 | };
767 | C2975276166014A700C734D3 /* Sources */ = {
768 | isa = PBXSourcesBuildPhase;
769 | buildActionMask = 2147483647;
770 | files = (
771 | C2975277166014A700C734D3 /* main.m in Sources */,
772 | C2975278166014A700C734D3 /* AppDelegate.m in Sources */,
773 | C2975279166014A700C734D3 /* RootViewController.m in Sources */,
774 | );
775 | runOnlyForDeploymentPostprocessing = 0;
776 | };
777 | C297528A1660152200C734D3 /* Sources */ = {
778 | isa = PBXSourcesBuildPhase;
779 | buildActionMask = 2147483647;
780 | files = (
781 | C297528B1660152200C734D3 /* main.m in Sources */,
782 | C297528C1660152200C734D3 /* AppDelegate.m in Sources */,
783 | C297528D1660152200C734D3 /* RootViewController.m in Sources */,
784 | C297528E1660152200C734D3 /* AnyJSON.m in Sources */,
785 | C29752AD1660159200C734D3 /* NSError+Extensions.m in Sources */,
786 | C29752AE1660159200C734D3 /* NXDebug.m in Sources */,
787 | C29752AF1660159200C734D3 /* NXJsonParser.m in Sources */,
788 | C29752B01660159200C734D3 /* NXJsonSerializer.m in Sources */,
789 | );
790 | runOnlyForDeploymentPostprocessing = 0;
791 | };
792 | C2E739831660F6900042CF6D /* Sources */ = {
793 | isa = PBXSourcesBuildPhase;
794 | buildActionMask = 2147483647;
795 | files = (
796 | C2E739931660F6BF0042CF6D /* AnyJSON.m in Sources */,
797 | );
798 | runOnlyForDeploymentPostprocessing = 0;
799 | };
800 | C2E739981661030B0042CF6D /* Sources */ = {
801 | isa = PBXSourcesBuildPhase;
802 | buildActionMask = 2147483647;
803 | files = (
804 | C2E739991661030B0042CF6D /* main.m in Sources */,
805 | C2E7399A1661030B0042CF6D /* AppDelegate.m in Sources */,
806 | C2E7399B1661030B0042CF6D /* RootViewController.m in Sources */,
807 | C2E7399D1661030B0042CF6D /* JSONKit.m in Sources */,
808 | );
809 | runOnlyForDeploymentPostprocessing = 0;
810 | };
811 | /* End PBXSourcesBuildPhase section */
812 |
813 | /* Begin XCBuildConfiguration section */
814 | C20BA5F616591398009CDED0 /* Debug */ = {
815 | isa = XCBuildConfiguration;
816 | buildSettings = {
817 | ALWAYS_SEARCH_USER_PATHS = NO;
818 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
819 | CLANG_CXX_LIBRARY = "libc++";
820 | CLANG_ENABLE_OBJC_ARC = YES;
821 | CLANG_WARN_EMPTY_BODY = YES;
822 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
823 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
824 | COPY_PHASE_STRIP = NO;
825 | GCC_C_LANGUAGE_STANDARD = gnu99;
826 | GCC_DYNAMIC_NO_PIC = NO;
827 | GCC_OPTIMIZATION_LEVEL = 0;
828 | GCC_PREPROCESSOR_DEFINITIONS = (
829 | "DEBUG=1",
830 | "$(inherited)",
831 | );
832 | GCC_SYMBOLS_PRIVATE_EXTERN = NO;
833 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
834 | GCC_WARN_ABOUT_RETURN_TYPE = YES;
835 | GCC_WARN_UNINITIALIZED_AUTOS = YES;
836 | GCC_WARN_UNUSED_VARIABLE = YES;
837 | IPHONEOS_DEPLOYMENT_TARGET = 5.0;
838 | MACOSX_DEPLOYMENT_TARGET = 10.6;
839 | SDKROOT = iphoneos;
840 | TARGETED_DEVICE_FAMILY = "1,2";
841 | };
842 | name = Debug;
843 | };
844 | C20BA5F716591398009CDED0 /* Release */ = {
845 | isa = XCBuildConfiguration;
846 | buildSettings = {
847 | ALWAYS_SEARCH_USER_PATHS = NO;
848 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
849 | CLANG_CXX_LIBRARY = "libc++";
850 | CLANG_ENABLE_OBJC_ARC = YES;
851 | CLANG_WARN_EMPTY_BODY = YES;
852 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
853 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
854 | COPY_PHASE_STRIP = YES;
855 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
856 | GCC_C_LANGUAGE_STANDARD = gnu99;
857 | GCC_PREPROCESSOR_DEFINITIONS = "NS_BLOCK_ASSERTIONS=1";
858 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
859 | GCC_WARN_ABOUT_RETURN_TYPE = YES;
860 | GCC_WARN_UNINITIALIZED_AUTOS = YES;
861 | GCC_WARN_UNUSED_VARIABLE = YES;
862 | IPHONEOS_DEPLOYMENT_TARGET = 5.0;
863 | MACOSX_DEPLOYMENT_TARGET = 10.6;
864 | SDKROOT = iphoneos;
865 | TARGETED_DEVICE_FAMILY = "1,2";
866 | VALIDATE_PRODUCT = YES;
867 | };
868 | name = Release;
869 | };
870 | C20BA5F916591398009CDED0 /* Debug */ = {
871 | isa = XCBuildConfiguration;
872 | buildSettings = {
873 | FRAMEWORK_SEARCH_PATHS = (
874 | "$(inherited)",
875 | "\"$(SRCROOT)/Libraries/YAJL/Project/Frameworks\"",
876 | "\"$(SRCROOT)/Libraries/YAJL/Project-iOS/Libraries\"",
877 | );
878 | GCC_PRECOMPILE_PREFIX_HEADER = YES;
879 | GCC_PREFIX_HEADER = Prefix.pch;
880 | INFOPLIST_FILE = Info.plist;
881 | PRODUCT_NAME = "$(TARGET_NAME)";
882 | WRAPPER_EXTENSION = app;
883 | };
884 | name = Debug;
885 | };
886 | C20BA5FA16591398009CDED0 /* Release */ = {
887 | isa = XCBuildConfiguration;
888 | buildSettings = {
889 | FRAMEWORK_SEARCH_PATHS = (
890 | "$(inherited)",
891 | "\"$(SRCROOT)/Libraries/YAJL/Project/Frameworks\"",
892 | "\"$(SRCROOT)/Libraries/YAJL/Project-iOS/Libraries\"",
893 | );
894 | GCC_PRECOMPILE_PREFIX_HEADER = YES;
895 | GCC_PREFIX_HEADER = Prefix.pch;
896 | INFOPLIST_FILE = Info.plist;
897 | PRODUCT_NAME = "$(TARGET_NAME)";
898 | WRAPPER_EXTENSION = app;
899 | };
900 | name = Release;
901 | };
902 | C21E2A47166E9CC300F1E521 /* Debug */ = {
903 | isa = XCBuildConfiguration;
904 | buildSettings = {
905 | ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
906 | CLANG_ENABLE_OBJC_ARC = NO;
907 | PRODUCT_NAME = "$(TARGET_NAME)";
908 | SDKROOT = macosx;
909 | };
910 | name = Debug;
911 | };
912 | C21E2A48166E9CC300F1E521 /* Release */ = {
913 | isa = XCBuildConfiguration;
914 | buildSettings = {
915 | ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
916 | CLANG_ENABLE_OBJC_ARC = NO;
917 | PRODUCT_NAME = "$(TARGET_NAME)";
918 | SDKROOT = macosx;
919 | };
920 | name = Release;
921 | };
922 | C21E2A56166EA2C300F1E521 /* Debug */ = {
923 | isa = XCBuildConfiguration;
924 | buildSettings = {
925 | ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
926 | CLANG_ENABLE_OBJC_ARC = NO;
927 | PRODUCT_NAME = "$(TARGET_NAME)";
928 | SDKROOT = macosx;
929 | };
930 | name = Debug;
931 | };
932 | C21E2A57166EA2C300F1E521 /* Release */ = {
933 | isa = XCBuildConfiguration;
934 | buildSettings = {
935 | ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
936 | CLANG_ENABLE_OBJC_ARC = NO;
937 | PRODUCT_NAME = "$(TARGET_NAME)";
938 | SDKROOT = macosx;
939 | };
940 | name = Release;
941 | };
942 | C297521F1660129500C734D3 /* Debug */ = {
943 | isa = XCBuildConfiguration;
944 | buildSettings = {
945 | FRAMEWORK_SEARCH_PATHS = (
946 | "$(inherited)",
947 | "\"$(SRCROOT)/Libraries/YAJL/Project/Frameworks\"",
948 | "\"$(SRCROOT)/Libraries/YAJL/Project-iOS/Libraries\"",
949 | );
950 | GCC_PRECOMPILE_PREFIX_HEADER = YES;
951 | GCC_PREFIX_HEADER = Prefix.pch;
952 | INFOPLIST_FILE = Info.plist;
953 | OTHER_LDFLAGS = "-ObjC";
954 | PRODUCT_NAME = "$(TARGET_NAME)";
955 | WRAPPER_EXTENSION = app;
956 | };
957 | name = Debug;
958 | };
959 | C29752201660129500C734D3 /* Release */ = {
960 | isa = XCBuildConfiguration;
961 | buildSettings = {
962 | FRAMEWORK_SEARCH_PATHS = (
963 | "$(inherited)",
964 | "\"$(SRCROOT)/Libraries/YAJL/Project/Frameworks\"",
965 | "\"$(SRCROOT)/Libraries/YAJL/Project-iOS/Libraries\"",
966 | );
967 | GCC_PRECOMPILE_PREFIX_HEADER = YES;
968 | GCC_PREFIX_HEADER = Prefix.pch;
969 | INFOPLIST_FILE = Info.plist;
970 | OTHER_LDFLAGS = "-ObjC";
971 | PRODUCT_NAME = "$(TARGET_NAME)";
972 | WRAPPER_EXTENSION = app;
973 | };
974 | name = Release;
975 | };
976 | C2975283166014A700C734D3 /* Debug */ = {
977 | isa = XCBuildConfiguration;
978 | buildSettings = {
979 | FRAMEWORK_SEARCH_PATHS = (
980 | "$(inherited)",
981 | "\"$(SRCROOT)/Libraries/YAJL/Project/Frameworks\"",
982 | "\"$(SRCROOT)/Libraries/YAJL/Project-iOS/Libraries\"",
983 | );
984 | GCC_PRECOMPILE_PREFIX_HEADER = YES;
985 | GCC_PREFIX_HEADER = Prefix.pch;
986 | INFOPLIST_FILE = Info.plist;
987 | OTHER_LDFLAGS = "-ObjC";
988 | PRODUCT_NAME = "$(TARGET_NAME)";
989 | WRAPPER_EXTENSION = app;
990 | };
991 | name = Debug;
992 | };
993 | C2975284166014A700C734D3 /* Release */ = {
994 | isa = XCBuildConfiguration;
995 | buildSettings = {
996 | FRAMEWORK_SEARCH_PATHS = (
997 | "$(inherited)",
998 | "\"$(SRCROOT)/Libraries/YAJL/Project/Frameworks\"",
999 | "\"$(SRCROOT)/Libraries/YAJL/Project-iOS/Libraries\"",
1000 | );
1001 | GCC_PRECOMPILE_PREFIX_HEADER = YES;
1002 | GCC_PREFIX_HEADER = Prefix.pch;
1003 | INFOPLIST_FILE = Info.plist;
1004 | OTHER_LDFLAGS = "-ObjC";
1005 | PRODUCT_NAME = "$(TARGET_NAME)";
1006 | WRAPPER_EXTENSION = app;
1007 | };
1008 | name = Release;
1009 | };
1010 | C29752971660152200C734D3 /* Debug */ = {
1011 | isa = XCBuildConfiguration;
1012 | buildSettings = {
1013 | FRAMEWORK_SEARCH_PATHS = (
1014 | "$(inherited)",
1015 | "\"$(SRCROOT)/Libraries/YAJL/Project/Frameworks\"",
1016 | "\"$(SRCROOT)/Libraries/YAJL/Project-iOS/Libraries\"",
1017 | );
1018 | GCC_PRECOMPILE_PREFIX_HEADER = YES;
1019 | GCC_PREFIX_HEADER = Prefix.pch;
1020 | INFOPLIST_FILE = Info.plist;
1021 | PRODUCT_NAME = "$(TARGET_NAME)";
1022 | WRAPPER_EXTENSION = app;
1023 | };
1024 | name = Debug;
1025 | };
1026 | C29752981660152200C734D3 /* Release */ = {
1027 | isa = XCBuildConfiguration;
1028 | buildSettings = {
1029 | FRAMEWORK_SEARCH_PATHS = (
1030 | "$(inherited)",
1031 | "\"$(SRCROOT)/Libraries/YAJL/Project/Frameworks\"",
1032 | "\"$(SRCROOT)/Libraries/YAJL/Project-iOS/Libraries\"",
1033 | );
1034 | GCC_PRECOMPILE_PREFIX_HEADER = YES;
1035 | GCC_PREFIX_HEADER = Prefix.pch;
1036 | INFOPLIST_FILE = Info.plist;
1037 | PRODUCT_NAME = "$(TARGET_NAME)";
1038 | WRAPPER_EXTENSION = app;
1039 | };
1040 | name = Release;
1041 | };
1042 | C2E739911660F6900042CF6D /* Debug */ = {
1043 | isa = XCBuildConfiguration;
1044 | buildSettings = {
1045 | CLANG_ENABLE_OBJC_ARC = NO;
1046 | DSTROOT = /tmp/AnyJSON.dst;
1047 | IPHONEOS_DEPLOYMENT_TARGET = 4.3;
1048 | OTHER_LDFLAGS = "-ObjC";
1049 | PRODUCT_NAME = "$(TARGET_NAME)";
1050 | SKIP_INSTALL = YES;
1051 | };
1052 | name = Debug;
1053 | };
1054 | C2E739921660F6900042CF6D /* Release */ = {
1055 | isa = XCBuildConfiguration;
1056 | buildSettings = {
1057 | CLANG_ENABLE_OBJC_ARC = NO;
1058 | DSTROOT = /tmp/AnyJSON.dst;
1059 | IPHONEOS_DEPLOYMENT_TARGET = 4.3;
1060 | OTHER_LDFLAGS = "-ObjC";
1061 | PRODUCT_NAME = "$(TARGET_NAME)";
1062 | SKIP_INSTALL = YES;
1063 | };
1064 | name = Release;
1065 | };
1066 | C2E739A61661030B0042CF6D /* Debug */ = {
1067 | isa = XCBuildConfiguration;
1068 | buildSettings = {
1069 | FRAMEWORK_SEARCH_PATHS = (
1070 | "$(inherited)",
1071 | "\"$(SRCROOT)/Libraries/YAJL/Project/Frameworks\"",
1072 | "\"$(SRCROOT)/Libraries/YAJL/Project-iOS/Libraries\"",
1073 | );
1074 | GCC_PRECOMPILE_PREFIX_HEADER = YES;
1075 | GCC_PREFIX_HEADER = Prefix.pch;
1076 | INFOPLIST_FILE = Info.plist;
1077 | OTHER_LDFLAGS = (
1078 | "-force_load",
1079 | "\"$(BUILT_PRODUCTS_DIR)/libAnyJSON.a\"",
1080 | );
1081 | PRODUCT_NAME = "$(TARGET_NAME)";
1082 | WRAPPER_EXTENSION = app;
1083 | };
1084 | name = Debug;
1085 | };
1086 | C2E739A71661030B0042CF6D /* Release */ = {
1087 | isa = XCBuildConfiguration;
1088 | buildSettings = {
1089 | FRAMEWORK_SEARCH_PATHS = (
1090 | "$(inherited)",
1091 | "\"$(SRCROOT)/Libraries/YAJL/Project/Frameworks\"",
1092 | "\"$(SRCROOT)/Libraries/YAJL/Project-iOS/Libraries\"",
1093 | );
1094 | GCC_PRECOMPILE_PREFIX_HEADER = YES;
1095 | GCC_PREFIX_HEADER = Prefix.pch;
1096 | INFOPLIST_FILE = Info.plist;
1097 | OTHER_LDFLAGS = (
1098 | "-force_load",
1099 | "\"$(BUILT_PRODUCTS_DIR)/libAnyJSON.a\"",
1100 | );
1101 | PRODUCT_NAME = "$(TARGET_NAME)";
1102 | WRAPPER_EXTENSION = app;
1103 | };
1104 | name = Release;
1105 | };
1106 | /* End XCBuildConfiguration section */
1107 |
1108 | /* Begin XCConfigurationList section */
1109 | C20BA5CB16591397009CDED0 /* Build configuration list for PBXProject "AnyJSON Example" */ = {
1110 | isa = XCConfigurationList;
1111 | buildConfigurations = (
1112 | C20BA5F616591398009CDED0 /* Debug */,
1113 | C20BA5F716591398009CDED0 /* Release */,
1114 | );
1115 | defaultConfigurationIsVisible = 0;
1116 | defaultConfigurationName = Release;
1117 | };
1118 | C20BA5F816591398009CDED0 /* Build configuration list for PBXNativeTarget "AnyJSON+JSONKit" */ = {
1119 | isa = XCConfigurationList;
1120 | buildConfigurations = (
1121 | C20BA5F916591398009CDED0 /* Debug */,
1122 | C20BA5FA16591398009CDED0 /* Release */,
1123 | );
1124 | defaultConfigurationIsVisible = 0;
1125 | defaultConfigurationName = Release;
1126 | };
1127 | C21E2A46166E9CC300F1E521 /* Build configuration list for PBXNativeTarget "NextiveJson" */ = {
1128 | isa = XCConfigurationList;
1129 | buildConfigurations = (
1130 | C21E2A47166E9CC300F1E521 /* Debug */,
1131 | C21E2A48166E9CC300F1E521 /* Release */,
1132 | );
1133 | defaultConfigurationIsVisible = 0;
1134 | defaultConfigurationName = Release;
1135 | };
1136 | C21E2A55166EA2C300F1E521 /* Build configuration list for PBXNativeTarget "JSONKit" */ = {
1137 | isa = XCConfigurationList;
1138 | buildConfigurations = (
1139 | C21E2A56166EA2C300F1E521 /* Debug */,
1140 | C21E2A57166EA2C300F1E521 /* Release */,
1141 | );
1142 | defaultConfigurationIsVisible = 0;
1143 | defaultConfigurationName = Release;
1144 | };
1145 | C297521E1660129500C734D3 /* Build configuration list for PBXNativeTarget "AnyJSON+YAJL" */ = {
1146 | isa = XCConfigurationList;
1147 | buildConfigurations = (
1148 | C297521F1660129500C734D3 /* Debug */,
1149 | C29752201660129500C734D3 /* Release */,
1150 | );
1151 | defaultConfigurationIsVisible = 0;
1152 | defaultConfigurationName = Release;
1153 | };
1154 | C2975282166014A700C734D3 /* Build configuration list for PBXNativeTarget "AnyJSON+SBJson" */ = {
1155 | isa = XCConfigurationList;
1156 | buildConfigurations = (
1157 | C2975283166014A700C734D3 /* Debug */,
1158 | C2975284166014A700C734D3 /* Release */,
1159 | );
1160 | defaultConfigurationIsVisible = 0;
1161 | defaultConfigurationName = Release;
1162 | };
1163 | C29752961660152200C734D3 /* Build configuration list for PBXNativeTarget "AnyJSON+NextiveJson" */ = {
1164 | isa = XCConfigurationList;
1165 | buildConfigurations = (
1166 | C29752971660152200C734D3 /* Debug */,
1167 | C29752981660152200C734D3 /* Release */,
1168 | );
1169 | defaultConfigurationIsVisible = 0;
1170 | defaultConfigurationName = Release;
1171 | };
1172 | C2E739901660F6900042CF6D /* Build configuration list for PBXNativeTarget "AnyJSON" */ = {
1173 | isa = XCConfigurationList;
1174 | buildConfigurations = (
1175 | C2E739911660F6900042CF6D /* Debug */,
1176 | C2E739921660F6900042CF6D /* Release */,
1177 | );
1178 | defaultConfigurationIsVisible = 0;
1179 | defaultConfigurationName = Release;
1180 | };
1181 | C2E739A51661030B0042CF6D /* Build configuration list for PBXNativeTarget "AnyJSON+JSONKit-Static" */ = {
1182 | isa = XCConfigurationList;
1183 | buildConfigurations = (
1184 | C2E739A61661030B0042CF6D /* Debug */,
1185 | C2E739A71661030B0042CF6D /* Release */,
1186 | );
1187 | defaultConfigurationIsVisible = 0;
1188 | defaultConfigurationName = Release;
1189 | };
1190 | /* End XCConfigurationList section */
1191 | };
1192 | rootObject = C20BA5C816591397009CDED0 /* Project object */;
1193 | }
1194 |
--------------------------------------------------------------------------------
/Example/AnyJSON Example.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Example/AppDelegate.h:
--------------------------------------------------------------------------------
1 | // AppDelegate.h
2 | //
3 | // Copyright (c) 2012 Cédric Luthi (https://twitter.com/0xced)
4 | //
5 | // Permission is hereby granted, free of charge, to any person obtaining a copy
6 | // of this software and associated documentation files (the "Software"), to deal
7 | // in the Software without restriction, including without limitation the rights
8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | // copies of the Software, and to permit persons to whom the Software is
10 | // furnished to do so, subject to the following conditions:
11 | //
12 | // The above copyright notice and this permission notice shall be included in
13 | // all copies or substantial portions of the Software.
14 | //
15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | // THE SOFTWARE.
22 |
23 | @interface AppDelegate : UIResponder
24 |
25 | @end
26 |
--------------------------------------------------------------------------------
/Example/AppDelegate.m:
--------------------------------------------------------------------------------
1 | // AppDelegate.m
2 | //
3 | // Copyright (c) 2012 Cédric Luthi (https://twitter.com/0xced)
4 | //
5 | // Permission is hereby granted, free of charge, to any person obtaining a copy
6 | // of this software and associated documentation files (the "Software"), to deal
7 | // in the Software without restriction, including without limitation the rights
8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | // copies of the Software, and to permit persons to whom the Software is
10 | // furnished to do so, subject to the following conditions:
11 | //
12 | // The above copyright notice and this permission notice shall be included in
13 | // all copies or substantial portions of the Software.
14 | //
15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | // THE SOFTWARE.
22 |
23 | #import "AppDelegate.h"
24 |
25 | #import "RootViewController.h"
26 |
27 | @implementation AppDelegate
28 | @synthesize window = _window;
29 |
30 | - (BOOL)application:(UIApplication *)application
31 | didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
32 | {
33 | self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
34 |
35 | UIViewController *viewController = [[RootViewController alloc] init];
36 | UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:viewController];
37 | [navigationController.navigationBar setBarStyle:UIBarStyleBlackOpaque];
38 | self.window.rootViewController = navigationController;
39 |
40 | [self.window makeKeyAndVisible];
41 |
42 | return YES;
43 | }
44 |
45 | @end
46 |
--------------------------------------------------------------------------------
/Example/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mattt/AnyJSON/acdf09b5facec8c4376f3a45f9c797780dff4b56/Example/Default-568h@2x.png
--------------------------------------------------------------------------------
/Example/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleDisplayName
8 | ${PRODUCT_NAME}
9 | CFBundleExecutable
10 | ${EXECUTABLE_NAME}
11 | CFBundleIdentifier
12 | com.alamofire.${PRODUCT_NAME:rfc1034identifier}
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | ${PRODUCT_NAME}
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleVersion
22 | 1.0
23 | LSRequiresIPhoneOS
24 |
25 | UIRequiredDeviceCapabilities
26 |
27 | armv7
28 |
29 | UISupportedInterfaceOrientations
30 |
31 | UIInterfaceOrientationPortrait
32 |
33 | UISupportedInterfaceOrientations~ipad
34 |
35 | UIInterfaceOrientationPortrait
36 | UIInterfaceOrientationPortraitUpsideDown
37 | UIInterfaceOrientationLandscapeLeft
38 | UIInterfaceOrientationLandscapeRight
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/Example/Prefix.pch:
--------------------------------------------------------------------------------
1 | #import
2 |
3 | #ifndef __IPHONE_4_0
4 | #warning "This project uses features only available in iOS SDK 4.0 and later."
5 | #endif
6 |
7 | #ifdef __OBJC__
8 | #import
9 | #import
10 | #endif
11 |
--------------------------------------------------------------------------------
/Example/RootViewController.h:
--------------------------------------------------------------------------------
1 | // RootViewController.h
2 | //
3 | // Copyright (c) 2012 Cédric Luthi (https://twitter.com/0xced)
4 | //
5 | // Permission is hereby granted, free of charge, to any person obtaining a copy
6 | // of this software and associated documentation files (the "Software"), to deal
7 | // in the Software without restriction, including without limitation the rights
8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | // copies of the Software, and to permit persons to whom the Software is
10 | // furnished to do so, subject to the following conditions:
11 | //
12 | // The above copyright notice and this permission notice shall be included in
13 | // all copies or substantial portions of the Software.
14 | //
15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | // THE SOFTWARE.
22 |
23 | @interface RootViewController : UIViewController
24 |
25 | @property (nonatomic, unsafe_unretained) IBOutlet UILabel *libraryLabel;
26 | @property (nonatomic, unsafe_unretained) IBOutlet UITextView *inputTextView;
27 | @property (nonatomic, unsafe_unretained) IBOutlet UITextView *outputTextView;
28 |
29 | @end
30 |
--------------------------------------------------------------------------------
/Example/RootViewController.m:
--------------------------------------------------------------------------------
1 | // RootViewController.m
2 | //
3 | // Copyright (c) 2012 Cédric Luthi (https://twitter.com/0xced)
4 | //
5 | // Permission is hereby granted, free of charge, to any person obtaining a copy
6 | // of this software and associated documentation files (the "Software"), to deal
7 | // in the Software without restriction, including without limitation the rights
8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | // copies of the Software, and to permit persons to whom the Software is
10 | // furnished to do so, subject to the following conditions:
11 | //
12 | // The above copyright notice and this permission notice shall be included in
13 | // all copies or substantial portions of the Software.
14 | //
15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | // THE SOFTWARE.
22 |
23 | #import "RootViewController.h"
24 |
25 | @implementation RootViewController
26 |
27 | #pragma mark - UIViewController
28 |
29 | - (void)viewDidLoad {
30 | self.title = NSLocalizedString(@"AnyJSON", nil);
31 |
32 | NSString *library = @"None";
33 | if (NSFoundationVersionNumber >= NSFoundationVersionNumber_iOS_5_0) {
34 | library = @"NSJSONSerialization";
35 | } else if (NSClassFromString(@"JKSerializer")) {
36 | library = @"JSONKit";
37 | } else if (NSClassFromString(@"NXJsonSerializer")) {
38 | library = @"NextiveJson";
39 | } else if (NSClassFromString(@"SBJsonWriter")) {
40 | library = @"SBJson";
41 | } else if (NSClassFromString(@"YAJLGen")) {
42 | library = @"YAJL";
43 | }
44 |
45 | self.libraryLabel.text = library;
46 | }
47 |
48 | #pragma mark - IBAction
49 |
50 | - (IBAction)test:(id)sender {
51 | [self.view endEditing:YES];
52 |
53 | @try {
54 | NSError *readingError = nil;
55 | NSJSONReadingOptions readingOptions = 0;
56 | id object = [NSJSONSerialization JSONObjectWithData:[self.inputTextView.text dataUsingEncoding:NSUTF8StringEncoding] options:readingOptions error:&readingError];
57 | if (!object) {
58 | self.outputTextView.text = [NSString stringWithFormat:NSLocalizedString(@"Reading Error: %@", nil), readingError];
59 | return;
60 | }
61 |
62 | NSError *writingError = nil;
63 | NSJSONWritingOptions writingOptions = 0;
64 | NSData *data = [NSJSONSerialization dataWithJSONObject:object options:writingOptions error:&writingError];
65 | if (!data) {
66 | self.outputTextView.text = [NSString stringWithFormat:NSLocalizedString(@"Writing Error: %@", nil), writingError];
67 | return;
68 | }
69 |
70 | self.outputTextView.text = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
71 | } @catch (NSException *exception) {
72 | self.outputTextView.text = [NSString stringWithFormat:NSLocalizedString(@"Exception: %@", nil), exception];
73 | }
74 | }
75 |
76 | @end
77 |
--------------------------------------------------------------------------------
/Example/RootViewController.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 1072
5 | 12C60
6 | 2844
7 | 1187.34
8 | 625.00
9 |
13 |
14 | IBProxyObject
15 | IBUIButton
16 | IBUILabel
17 | IBUITextView
18 | IBUIView
19 |
20 |
21 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
22 |
23 |
27 |
28 |
32 |
36 |
193 |
194 |
195 |
196 |
197 |
198 | view
199 |
200 |
201 |
202 | 7
203 |
204 |
205 |
206 | inputTextView
207 |
208 |
209 |
210 | 26
211 |
212 |
213 |
214 | libraryLabel
215 |
216 |
217 |
218 | 27
219 |
220 |
221 |
222 | outputTextView
223 |
224 |
225 |
226 | 28
227 |
228 |
229 |
230 | test:
231 |
232 |
233 | 7
234 |
235 | 22
236 |
237 |
238 |
239 |
240 |
241 | 0
242 |
243 |
244 |
245 |
246 |
247 | -1
248 |
249 |
250 | File's Owner
251 |
252 |
253 | -2
254 |
255 |
256 |
257 |
258 | 6
259 |
260 |
261 |
262 |
263 |
264 |
265 |
266 |
267 |
268 |
269 | 12
270 |
271 |
272 |
273 |
274 | 16
275 |
276 |
277 | JSON Text View
278 |
279 |
280 | 17
281 |
282 |
283 | Data Text View
284 |
285 |
286 | 25
287 |
288 |
289 |
290 |
291 |
292 |
293 | DemoViewController
294 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
295 | UIResponder
296 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
297 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
298 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
299 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
300 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
301 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
302 |
303 |
304 |
305 |
306 |
307 | 28
308 |
309 |
310 |
311 |
312 | DemoViewController
313 | UIViewController
314 |
315 | UITextView
316 | UILabel
317 | UITextView
318 |
319 |
320 |
321 | inputTextView
322 | UITextView
323 |
324 |
325 | libraryLabel
326 | UILabel
327 |
328 |
329 | outputTextView
330 | UITextView
331 |
332 |
333 |
334 | IBProjectSource
335 | ./Classes/DemoViewController.h
336 |
337 |
338 |
339 |
340 | 0
341 | IBCocoaTouchFramework
342 |
343 | com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
344 |
345 |
346 | YES
347 | 3
348 | 1930
349 |
350 |
351 |
--------------------------------------------------------------------------------
/Example/main.m:
--------------------------------------------------------------------------------
1 | // main.m
2 | //
3 | // Copyright (c) 2012 Cédric Luthi (https://twitter.com/0xced)
4 | //
5 | // Permission is hereby granted, free of charge, to any person obtaining a copy
6 | // of this software and associated documentation files (the "Software"), to deal
7 | // in the Software without restriction, including without limitation the rights
8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | // copies of the Software, and to permit persons to whom the Software is
10 | // furnished to do so, subject to the following conditions:
11 | //
12 | // The above copyright notice and this permission notice shall be included in
13 | // all copies or substantial portions of the Software.
14 | //
15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | // THE SOFTWARE.
22 |
23 | #import "AppDelegate.h"
24 |
25 | int main(int argc, char *argv[]) {
26 | @autoreleasepool {
27 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | Copyright (c) 2012 Mattt (https://mat.tt/)
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files (the "Software"), to deal
5 | in the Software without restriction, including without limitation the rights
6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | copies of the Software, and to permit persons to whom the Software is
8 | furnished to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in
11 | all copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 | THE SOFTWARE.
20 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ## AnyJSON
2 |
3 | > This project is no longer maintained.
4 |
5 | **Encode / Decode JSON By Any Means Possible**
6 |
7 | AnyJSON implements the `NSJSONSerialization` API
8 | for platforms that don't support it ---
9 | namely iOS < 5 and Mac OS X < 10.7 ---
10 | using the first available of the following 3rd-party libraries:
11 |
12 | - [JSONKit](https://github.com/johnezang/JSONKit)
13 | - [yajl_json](https://github.com/gabriel/yajl-objc)
14 | - [SBJSON](https://github.com/stig/json-framework)
15 | - [NextiveJSON](https://github.com/nextive/NextiveJson)
16 |
17 | > For anyone who appreciates lower-level Objective-C hacks,
18 | > you won't want to miss
19 | > [how AnyJSON works its magic](https://github.com/mattt/AnyJSON/blob/master/AnyJSON/AnyJSON.m#L247).
20 |
21 | ## Compatibility
22 |
23 | ### Supported Methods
24 |
25 | The following methods are supported by AnyJSON:
26 |
27 | ```objective-c
28 | + (id)JSONObjectWithData:(NSData *)data
29 | options:(NSJSONReadingOptions)opt
30 | error:(NSError **)error
31 |
32 | + (NSData *)dataWithJSONObject:(id)obj
33 | options:(NSJSONWritingOptions)opt
34 | error:(NSError **)error
35 | ```
36 |
37 | ### Supported Reading Options
38 |
39 | - `NSJSONReadingMutableContainers` is supported only by JSONKit
40 | - `NSJSONReadingMutableLeaves` is not supported
41 | (it doesn't even work with `NSJSONSerialization` on iOS 5+).
42 | - `NSJSONReadingAllowFragments` is not supported,
43 | though NextiveJSON always allows fragments
44 |
45 | ### Supported Writing Options
46 |
47 | - `NSJSONWritingPrettyPrinted` is supported by JSONKit, yajl_json, and SBJSON
48 |
49 | ### Unsupported Methods
50 |
51 | The following methods are not currently supported by AnyJSON,
52 | and instead throw an `AnyJSONUnimplementedException` exception when called:
53 |
54 | ```objective-c
55 | + (id)JSONObjectWithStream:(NSInputStream *)stream
56 | options:(NSJSONReadingOptions)opt
57 | error:(NSError **)error
58 |
59 | + (NSInteger)writeJSONObject:(id)obj
60 | toStream:(NSOutputStream *)stream
61 | options:(NSJSONWritingOptions)opt
62 | error:(NSError **)error
63 |
64 | + (BOOL)isValidJSONObject:(id)obj
65 | ```
66 |
67 | ## Contact
68 |
69 | - [Cédric Luthi](https://twitter.com/0xced)
70 | - [Mattt](https://twitter.com/mattt)
71 |
72 | ## License
73 |
74 | AnyJSON is available under the MIT license.
75 | See the LICENSE file for more info.
76 |
--------------------------------------------------------------------------------