#BSONKit
The BSONKit is an Objective-C framework for decoding binary JSON according to the BSON specification http://bsonspec.org
This is a modification of the original BSONKit created by Mattias Levin: https://github.com/mattiaslevin/BSONKit I made a lot of bug fixes and cleanups. This is tested on iOS, but should work on Os-X as well.
It doesn't use ARC, but could be easily converted to use it.
####Type conversion rules
BSON types are converted into Objective-C types according to the table below:
BSON type | Objective-c type |
---|---|
Document | NSDictionary |
Floating point | double |
UTF-8 string | NSString |
Array | NSArray |
Binary data | NSData |
ObjectId | NSData |
Boolean | BOOL |
UTC datestamp | long long |
Null value | NSNill |
Regular expression | NSArray with two objects - regexp pattern (NSString) and options (NSString) |
Javascript code | NSString |
Symbol | NSString |
Javascript code with scope | NSArray with two objects - the Javascript code (NSString) and scope variables (NSDictionary) |
32-bit integer | NSInteger |
Timestamp | long long |
64-bit integer | long long |
Min key | TBD |
Max key | TBD |
##Interface
The interface for performing the decoding is very simple:
// Get a decoder instance
+ (id)decoder;
// Start decoding a BSON byte array
- (id)decode:(NSData*)source withError:(NSError**)error;
There is also a convenience NSData category:
// Decoding a BSON byte array
- (id)decodeBSONWithError:(NSError**)error;