Greg, Your general approach looks good, and jives with my reading of the riak_object module. Let us know if you still have problems with mochijson2.
Sean On Mon, Sep 19, 2011 at 1:42 PM, Greg Pascale <g...@clipboard.com> wrote: > Scratch that - the issue doesn't actually manifest without the > decode/encode. > > > On Mon, Sep 19, 2011 at 10:47 AM, Greg Pascale <g...@clipboard.com> wrote: > >> Actually it looks like I can remove the JSON decode/encode and I still see >> the same issue. Just reading and writing the value is enough, so all I'm >> doing now is >> >> *precommit(RiakObject) ->* >> * Value = riak_object:get_value(RiakObject),* >> * riak_object:apply_updates(* >> * riak_object:update_value(RiakObject, Value)).* >> >> I'm really baffled here. The only documentation I know of for this code is >> at >> http://basho.github.com/riak-erlang-client/riak-erlang-client/riakc_obj.html >> and >> it really doesn't say much. >> >> -Greg >> Clipboard >> >> On Sat, Sep 17, 2011 at 4:11 PM, Greg Pascale <g...@clipboard.com> wrote: >> >>> Hi, >>> >>> I'm trying to write a simple precommit hook to modify a JSON object by >>> removing certain fields. The simplest way to do this, I figure, is to decode >>> the object's value with mochijson2, remove the fields I don't want, >>> re-encode it, and update the value. >>> >>> What happens, though, is my object ends up somehow mangled. When I >>> inspect it via curl, it sort of looks like JSON, but characters like "{" and >>> ":" seem to be replaced with garbage. >>> >>> For example, what should read "hostname":"www.google.com" looks like * >>> hostnamea"ja:la"mwww.google.coma"j* >>> >>> To try to diagnose the issue, I reduced my hook to the simplest possible >>> case. I don't even modify the JSON, I just decode the object and re-encode >>> exactly the same value, but I still have the problem. The code is pasted >>> below >>> >>> *precommit(RiakObject) ->* >>> * Value = riak_object:get_value(RiakObject),* >>> * {struct, TermList} = mochijson2:decode(Value),* >>> * riak_object:apply_updates(* >>> * riak_object:update_value(RiakObject, * >>> * mochijson2:encode({struct, >>> TermList}))).* >>> >>> Can anybody point out what I'm doing wrong? >>> >>> -- >>> Greg >>> Clipboard <http://www.clipboard.com> is >>> hiring<http://www.clipboard.com/jobs> >>> ! >>> >>> >> >> >> -- >> Greg >> Clipboard <http://www.clipboard.com> is hiring<http://www.clipboard.com/jobs> >> ! >> >> > > > -- > Greg > Clipboard <http://www.clipboard.com> is hiring<http://www.clipboard.com/jobs> > ! > > > _______________________________________________ > riak-users mailing list > riak-users@lists.basho.com > http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com > >
_______________________________________________ riak-users mailing list riak-users@lists.basho.com http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com