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 database
You cannot convert a JSON::Any into a JSON::Serializable
This PR changes the default deserialization of json columns from JSON::Any to JSON::PullParser. The benefit we get from this is that it can easily be converted into a JSON::Any or a JSON::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.
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.