Hi Michail, ...
1. If you stored the object via the HTTP or PB interfaces, then then object
will simply be a binary corresponding to the body content you sent to the
service. So, if it's JSON then you need to parse it. You can use Dict =
riak_object:get_metadata/1 to get a dict that roughly corresponds to the HTTP
headers (most notably the Content-Type can be seen there). When using the
native Erlang API, you can store any Erlang term as the "value" of a
riak_object.
2. If you enable allow_mult=true on your bucket, then you need to use
get_values / get_metadatas, because a write conflict could make your object
have multiple values.
At any rate, you'll already have a JSON decoder (mochijson2) when running
inside Riak; so you can do
JSON = mochijson2:decode(Value)
To decode your JSON. For the JSON document {"key":4, "val":{"x"="y"}} , that
function should return
{struct, [{<<"key">>, 4},
{<<"val">>, {struct,
[{<<"x">>, <<"y">>}]}]}
... and you should be good to go.
On Apr 28, 2011, at 11:50 PM, Mikhail Sobolev wrote:
> Hi,
>
> I'm trying to write a map function in Erlang. As far as I understand,
> the function must have arity 3 (according to the wiki) and the first
> parameter is the actual object (corresponding to the given bucket/key).
> To obtain the value of the object, I use riak_object:get_value function,
> however I'm not sure about the structure of that value (wiki does not
> seem to say anything about it).
>
> Could somebody point me to the right place to look at?
>
> Essentially, I'd be looking for sometihng that says: "here's a JSON data
> structure, and this is how it looks an Erlang term".
>
> --
> Misha
> <signature.asc><ATT00001..txt>
_______________________________________________
riak-users mailing list
[email protected]
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com