Case Aware Json
Allow to serialize and deserialize json with various cases conventions for object keys.
Can be used by passing an extra param to the to_json and from_json methods.
Might not mix well with @[JSON::Field(key: "")] annotations. The custom key will be transformed to and from the specified case.
It works with JSON::Serializable.use_json_discriminator too.
Also add an optional default parameter to JSON::Serializable.use_json_discriminator because it's handy and I need it anyway.
Installation
-
Add the dependency to your
shard.yml:dependencies: case_aware_json: github: globoplox/case_aware_json -
Run
shards install
Usage
require "case_aware_json"
class Test
include JSON::Serializable
property test_property : String
def initialize(@test_property) end
end
Test.new("test").to_json case: :camel
Test.from_json %({"testProperty": "test"}), case: :camel
Contributors
- Globoplox - creator and maintainer