You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by da...@apache.org on 2014/02/12 20:45:29 UTC

[4/9] couch commit: updated refs/heads/1843-feature-bigcouch to 20a53ef

Switch JSON encoding/decoding to Jiffy


Project: http://git-wip-us.apache.org/repos/asf/couchdb-couch/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb-couch/commit/bc948321
Tree: http://git-wip-us.apache.org/repos/asf/couchdb-couch/tree/bc948321
Diff: http://git-wip-us.apache.org/repos/asf/couchdb-couch/diff/bc948321

Branch: refs/heads/1843-feature-bigcouch
Commit: bc9483216b76c4bf61eb7223e0e14289420129e3
Parents: 331d549
Author: Paul J. Davis <pa...@gmail.com>
Authored: Tue Feb 4 22:20:32 2014 -0600
Committer: Paul J. Davis <pa...@gmail.com>
Committed: Tue Feb 4 22:20:32 2014 -0600

----------------------------------------------------------------------
 include/couch_db.hrl |  4 ++--
 src/couch_util.erl   | 12 ++++++++++++
 2 files changed, 14 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/couchdb-couch/blob/bc948321/include/couch_db.hrl
----------------------------------------------------------------------
diff --git a/include/couch_db.hrl b/include/couch_db.hrl
index ffecae0..2c015df 100644
--- a/include/couch_db.hrl
+++ b/include/couch_db.hrl
@@ -18,8 +18,8 @@
 -define(MIN_STR, <<"">>).
 -define(MAX_STR, <<255>>). % illegal utf string
 
--define(JSON_ENCODE(V), ejson:encode(V)).
--define(JSON_DECODE(V), ejson:decode(V)).
+-define(JSON_ENCODE(V), couch_util:json_encode(V)).
+-define(JSON_DECODE(V), couch_util:json_decode(V)).
 
 -define(b2l(V), binary_to_list(V)).
 -define(l2b(V), list_to_binary(V)).

http://git-wip-us.apache.org/repos/asf/couchdb-couch/blob/bc948321/src/couch_util.erl
----------------------------------------------------------------------
diff --git a/src/couch_util.erl b/src/couch_util.erl
index d09211a..beb9622 100644
--- a/src/couch_util.erl
+++ b/src/couch_util.erl
@@ -21,6 +21,7 @@
 -export([get_nested_json_value/2, json_user_ctx/1]).
 -export([proplist_apply_field/2, json_apply_field/2]).
 -export([to_binary/1, to_integer/1, to_list/1, url_encode/1]).
+-export([json_encode/1, json_decode/1]).
 -export([verify/2,simple_call/2,shutdown_sync/1]).
 -export([get_value/2, get_value/3]).
 -export([md5/1, md5_init/0, md5_update/2, md5_final/1]).
@@ -376,6 +377,17 @@ url_encode([H|T]) ->
 url_encode([]) ->
     [].
 
+json_encode(V) ->
+    jiffy:encode(V, [force_utf8]).
+
+json_decode(V) ->
+    try
+        jiffy:decode(V)
+    catch
+        throw:Error ->
+            throw({invalid_json, Error})
+    end.
+
 verify([X|RestX], [Y|RestY], Result) ->
     verify(RestX, RestY, (X bxor Y) bor Result);
 verify([], [], Result) ->