Commit Graph

41 Commits

Author SHA1 Message Date
Gwynne Raskind 282c85961a
Add explicitly-typed UInt overloads (usually Codable suggests them) for _JSON[Keyed|Unkeyed|Single]Value[Encoder|Decoder] and their containers. UInt also gets a customized JSONRepresentable conformance that round-trips its bit pattern through Int. 2021-08-22 16:16:09 -05:00
Caleb Kleveter cfd8028b24
Revert "Store dates as time intervals"
This reverts commit 25ac92ee9a.
2019-12-07 12:42:16 -06:00
Caleb Kleveter 25ac92ee9a
Store dates as time intervals 2019-12-07 12:40:04 -06:00
Caleb Kleveter 03a4901be4
Don't add empty array to container.json in _JSONUnkeyedEncoder initializer 2019-11-26 11:44:18 -06:00
Caleb Kleveter 96a40518fa
Assign result of _JSONEncoder.encode to contain in generic _JSONKeyedDecoder.encode method
We do this instead of calling value.encode because enum cases with associated values were being encoded as arrays with 3 or 4 nil values before them and I have no idea why.
2019-11-26 10:41:30 -06:00
Caleb Kleveter b9dc5710dc
Merge branch 'develop' of github.com:skelpo/JSON into develop 2019-11-07 08:39:15 -06:00
Caleb Kleveter f213438f71
Assign an empty array to JSON path when _JSONUnkeyedEncoder is initialized 2019-11-07 08:38:59 -06:00
Ralph Kuepper e3ff18dfe1 remove debug code 2019-10-23 01:10:20 +02:00
Ralph Kuepper 2b91ed7c2f remove debug messages 2019-10-22 18:21:52 +02:00
Ralph Kuepper 7b88fc5974 Experiementing with using always strings for Decimal 2019-10-22 18:01:31 +02:00
Caleb Kleveter 4cb41f0d28
Attempt to use JSON convertible protocols when encoding/decoding 2019-10-18 09:36:53 -05:00
Caleb Kleveter 8b8ca9bf4d
Extended encoding container types with Decimal overloads 2019-10-18 08:56:08 -05:00
Caleb Kleveter 2403c2d178
Attempt Decimal decode if enum case matching fails in JSON.value(for:at:) method 2019-10-18 08:29:08 -05:00
Caleb Kleveter 02f06ff761
Added handling of Decimal values in Number 2019-10-17 17:27:52 -05:00
Caleb Kleveter ced1651651
Fixed nested encoding containers 2019-10-17 11:29:18 -05:00
Caleb Kleveter a5cdbe9301
Added support for fixed-width integers to JSON encoders and decoders 2019-07-18 08:12:25 -05:00
Caleb Kleveter 28cbf2a4f8
Added .is<case> Bool properties to JSON enum 2019-06-12 15:15:37 -05:00
Caleb Kleveter 8f8593e0d3
Added JSON(data:) initializer to base JSON type 2019-03-27 07:07:06 -05:00
Caleb Kleveter b2a657fb00
Removed un-used 'try' statements from _JSONKeyedEncoder methods 2019-03-21 09:01:30 -05:00
Caleb Kleveter 9cb4a26c3f
Documented public API 2019-03-20 16:45:27 -05:00
Caleb Kleveter 7b47702abb
Organized encoder/decoder methods 2018-07-30 17:52:07 -05:00
Caleb Kleveter a71d2b0752
Made JSON.isObject and .isArray properties public 2018-06-13 06:38:36 -05:00
Caleb Kleveter 107929301b
Changed _JSONSingleValueEncoder._encode(_:) method to set container json vs. setting container 2018-04-26 13:16:51 -05:00
Caleb Kleveter 6cba6229ad
Added T type check to JSONCoder.decode(_:from:) method for people who attempt to decode JSON to JSON 2018-04-24 09:00:21 -05:00
Caleb Kleveter 19c373c42f
Removed public access control identifier from JSONContainer methods 2018-04-10 08:38:13 -05:00
Caleb Kleveter 0e232f1d18
Removed un-used methods from JSONContainer type 2018-03-21 15:12:49 -05:00
Caleb Kleveter 7d63e64fea Created failable JSON init for types conforming to Decodable 2018-02-20 14:23:22 -06:00
Caleb Kleveter fa3a6469d5 Removed un-used import of CodableKit 2018-02-19 10:02:20 -06:00
Caleb Kleveter 474e92c010 Changed JSON.isObject and .isArray properties to check with switch statements 2018-02-19 07:17:50 -06:00
Caleb Kleveter 901b66ab6b Removed commented-out return for _JSONSingleValueDecoder.decode(T) 2018-02-19 06:57:15 -06:00
Caleb Kleveter 150a0e0690 Added numeric type conversion to JSON.value method 2018-02-16 16:17:35 -06:00
Caleb Kleveter 12fd3d15ea Created Float decoding methods 2018-02-16 16:16:41 -06:00
Caleb Kleveter 3e6d8a7939 Added Float type case in JSON.value method 2018-02-16 14:48:26 -06:00
Caleb Kleveter b65f5f9ec1 Replaced passing _JSONDecoder with passing coding key path in decoders 2018-02-16 14:47:41 -06:00
Caleb Kleveter baf3137bc9 Replaced new JSON inits with self.json in JSON encoding containers 2018-02-16 14:46:49 -06:00
Caleb Kleveter e7593c6674 Removed .canEncodeNewValue property from _JSONEncoder 2018-02-16 14:38:58 -06:00
Caleb Kleveter 35b80bf0f1 Return _JSONSingleValueDecoder from _JSONEncoder.singleValueContainer 2018-02-16 14:37:51 -06:00
Caleb Kleveter 5f67f16443 Replaced _JSONEncoder.SingleValueEncodingContainer conformance with _JSONSingleValueEncoder type 2018-02-16 12:05:58 -06:00
Caleb Kleveter e46cff568d Replaced _JSONDecoder.SingleValueDecodingContainer conformance with _JSONSingleValueDecoder type 2018-02-16 11:58:25 -06:00
Caleb Kleveter 1a924df07e Replaced direct JSON storage with JSONContainer in _JSONEncoder types 2018-02-16 07:49:01 -06:00
Caleb Kleveter f2d92d1fd5 Created custom JSON encoder and decoder 2018-02-15 16:12:49 -06:00