anchor.diff:      json_encode_array(Array, State);
   json_encode({struct, Props}, State) when is_list(Props) ->
       json_encode_proplist(Props, State);
  +json_encode({json, IoList}, _State) ->
  +    IoList;
   json_encode(Bad, #encoder{handler=null}) ->
       exit({json_encode, {bad_term, Bad}});
   json_encode(Bad, State=#encoder{handler=Handler}) ->
  
positive.code: %% @type json_number() = integer() | float()
  %% @type json_array() = [json_term()]
  %% @type json_object() = {struct, [{json_string(), json_term()}]}
  %% @type json_term() = json_string() | json_number() | json_array() |
  %%                     json_object()
  
  -record(encoder, {handler=null,
                    utf8=false}).
  
negative.code:         ok = try decode(X) catch invalid_utf8 -> ok end
      end, Bad).
  
  inline_json_test() ->
      ?assertEqual(<<"\"iodata iodata\"">>,
                   iolist_to_binary(
                     encode({json, [<<"\"iodata">>, " iodata\""]}))),
      ?assertEqual({struct, [{<<"key">>, <<"iodata iodata">>}]},
                   decode(
                     encode({struct,
                             [{key, {json, [<<"\"iodata">>, " iodata\""]}}]}))),
      ok.
  
  -endif.
  