My favorites | Sign in
Project Home
READ-ONLY: This project has been archived. For more information see this post.
Search
for
  Advanced search   Search tips   Subscriptions

Issue 63 attachment: CJSONDeserializer_deserializeAsArray.patch (1.4 KB)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
diff -r 1f3b006ac9c1 TouchJSON/Source/JSON/CJSONDeserializer.h
--- a/TouchJSON/Source/JSON/CJSONDeserializer.h Wed Aug 26 21:12:46 2009 -0400
+++ b/TouchJSON/Source/JSON/CJSONDeserializer.h Sun Sep 13 18:48:26 2009 -0400
@@ -1,4 +1,4 @@
-//
+ //
// CJSONDeserializer.h
// TouchCode
//
@@ -35,6 +35,8 @@

- (id)deserializeAsDictionary:(NSData *)inData error:(NSError **)outError;

+- (id)deserializeAsArray:(NSData *)inData error:(NSError **)outError;
+
@end

#pragma mark -
@@ -49,4 +51,6 @@

- (id)deserializeAsDictionary:(NSData *)inData error:(NSError **)outError;

+- (id)deserializeAsArray:(NSData *)inData error:(NSError **)outError;
+
@end
diff -r 1f3b006ac9c1 TouchJSON/Source/JSON/CJSONDeserializer.m
--- a/TouchJSON/Source/JSON/CJSONDeserializer.m Wed Aug 26 21:12:46 2009 -0400
+++ b/TouchJSON/Source/JSON/CJSONDeserializer.m Sun Sep 13 18:48:26 2009 -0400
@@ -75,4 +75,20 @@
return(NULL);
}

+- (id)deserializeAsArray:(NSData *)inData error:(NSError **)outError {
+ if (inData == NULL || [inData length] == 0) {
+ if (outError)
+ *outError = [NSError errorWithDomain:kJSONDeserializerErrorDomain code:-1 userInfo:NULL];
+
+ return(NULL);
+ }
+
+ CJSONScanner *theScanner = [CJSONScanner scannerWithData:inData];
+ NSArray *theArray = NULL;
+ if ([theScanner scanJSONArray:&theArray error:outError] == YES)
+ return(theArray);
+ else
+ return(NULL);
+}
+
@end
Powered by Google Project Hosting