anchor.diff:              false
       end.
   
  -json_encode_string_unicode([], Acc) ->
  +json_encode_string_unicode([], _State, Acc) ->
       lists:reverse([$\" | Acc]);
  -json_encode_string_unicode([C | Cs], Acc) ->
  +json_encode_string_unicode([C | Cs], State, Acc) ->
       Acc1 = case C of
                  ?Q ->
                      [?Q, $\\ | Acc];
  
positive.code:      {[-123, <<"foo">>, obj_from_list([{<<"bar">>, []}]), null],
        "[-123,\"foo\",{\"bar\":[]},null]"}
      ].
  
negative.code:     [$, | Acc1] = lists:foldl(F, "{", Props),
      lists:reverse([$\} | Acc1]).
  
  json_encode_string(A, State) when is_atom(A) ->
      L = atom_to_list(A),
      case json_string_is_safe(L) of
          true ->
              [?Q, L, ?Q];
          false ->
              json_encode_string_unicode(xmerl_ucs:from_utf8(L), State, [?Q])
      end;
  json_encode_string(B, State) when is_binary(B) ->
      case json_bin_is_safe(B) of
          true ->
              [?Q, B, ?Q];
          false ->
              json_encode_string_unicode(xmerl_ucs:from_utf8(B), State, [?Q])
      end;
  json_encode_string(I, _State) when is_integer(I) ->
      [?Q, integer_to_list(I), ?Q];
  json_encode_string(L, State) when is_list(L) ->
      case json_string_is_safe(L) of
          true ->
              [?Q, L, ?Q];
          false ->
              json_encode_string_unicode(L, State, [?Q])
      end.
  
  json_string_is_safe([]) ->
  