Couchbase Lite
Objective-C API for iOS and Mac OS
CBLJSON.h
Go to the documentation of this file.
1 //
2 // CBLJSON.h
3 // CouchbaseLite
4 //
5 // Created by Jens Alfke on 2/27/12.
6 // Copyright (c) 2012-2013 Couchbase, Inc. All rights reserved.
7 //
8 
9 #import "CBLBase.h"
10 
12 
14 enum {
18 };
19 typedef NSUInteger CBLJSONReadingOptions;
20 
22 enum {
24 
26 };
27 typedef NSUInteger CBLJSONWritingOptions;
28 
29 
31 @interface CBLJSON : NSJSONSerialization
32 
34 + (nullable NSString*) stringWithJSONObject:(id)obj
35  options:(CBLJSONWritingOptions)opt
36  error:(NSError**)error;
37 
38 + (nullable id) JSONObjectWithData:(NSData *)data;
39 
40 + (nullable NSData*) dataWithJSONObject:(id)obj;
41 
45 + (NSData*) appendDictionary: (CBLJSONDict*)dict
46  toJSONDictionaryData: (NSData*)json;
47 
49 + (NSData*) appendJSONDictionaryData: (NSData*)extraJson
50  toJSONDictionaryData: (NSData*)json;
51 
53 + (NSString*) JSONObjectWithDate: (NSDate*)date;
54 + (NSString*) JSONObjectWithDate: (NSDate*)date timeZone:(NSTimeZone *)tz;
55 
58 + (nullable NSDate*) dateWithJSONObject: (nullable id)jsonObject;
59 
62 + (CFAbsoluteTime) absoluteTimeWithJSONObject: (nullable id)jsonObject;
63 
66 + (nullable id) valueAtPointer: (NSString*)pointer inObject: (nullable id)object;
67 
69 + (NSString*) base64StringWithData: (NSData*)data;
70 
73 + (nullable NSData*) dataWithBase64String: (nullable id)jsonObject;
74 
76 + (size_t) estimateMemorySize: (id)object;
77 
78 @end
79 
80 
83 @interface CBLLazyArrayOfJSON : NSArray
84 
87 - (instancetype) initWithMutableArray: (NSMutableArray*)array;
88 @end
89 
90 
91 typedef void (^CBLOnMutateBlock)();
92 
95 @protocol CBLJSONEncoding <NSObject>
96 - (nullable instancetype) initWithJSON: (id)jsonObject;
97 - (id) encodeAsJSON;
98 
99 @optional
106 - (void) setOnMutate: (CBLOnMutateBlock)onMutate;
107 @end
108 
109 
Definition: CBLJSON.h:16
#define NS_ASSUME_NONNULL_BEGIN
Definition: CBLBase.h:20
Allows input to be an NSString or NSValue.
Definition: CBLJSON.h:25
Definition: CBLJSON.h:23
#define nullable
Definition: CBLBase.h:22
Definition: CBLJSON.h:15
void(^ CBLOnMutateBlock)()
Definition: CBLJSON.h:91
#define NS_ASSUME_NONNULL_END
Definition: CBLBase.h:21
NSUInteger CBLJSONWritingOptions
Definition: CBLJSON.h:27
NSUInteger CBLJSONReadingOptions
Definition: CBLJSON.h:19
Useful extensions for JSON serialization/parsing.
Definition: CBLJSON.h:31
Wrapper for an NSArray of JSON data, that avoids having to parse the data if it&#39;s not used...
Definition: CBLJSON.h:83
Definition: CBLJSON.h:17