Json columns are read as JSON::PullParser instead of JSON::Any #232
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #125
Currently, if you have a json column and read it with this library, it is automatically turned into a
JSON::Any
. It makes sense when you don't care about the structure, but there's two problems with doing that:JSON::Any
is immutable so that values cannot be changed and then saved back to the databaseJSON::Any
into aJSON::Serializable
This PR changes the default deserialization of json columns from
JSON::Any
toJSON::PullParser
. The benefit we get from this is that it can easily be converted into aJSON::Any
or aJSON::Serializable
. It is still not mutable but it's easier to get to a mutable setting:I added a method specifically for still supporting calling
result_set.read(JSON::Any)
with hopes that will cause the least amount of breakage, because this is definitely a breaking change.