Thanks,

I was able to work around the issue by using regexes to do string replacement, 
thereby avoiding decoding and encoding JSON, but it would be nice to know what 
was going wrong here.

-Greg
Clipboard



On Sep 19, 2011, at 11:44 AM, Sean Cribbs wrote:

> 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 is hiring!
> 
> 
> 
> 
> -- 
> Greg
> Clipboard is hiring!
> 
> 
> 
> 
> -- 
> Greg
> Clipboard is hiring!
> 
> 
> _______________________________________________
> 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

Reply via email to