def be_json(expected = Saharspec::Matchers::BeJson::NONE)
      Saharspec::Matchers::BeJson.new(expected)
    end
def be_json(expected = Saharspec::Matchers::BeJson::NONE)
      Saharspec::Matchers::BeJson.new(expected)
    end
`be_json` checks if provided value is JSON, and optionally checks it contents.

 If you need to check against some hashes, it is more convenient to use `be_json_sym`, which
 parses JSON with `symbolize_names: true`.

 @example

   expect('{}').to be_json # ok
   expect('garbage').to be_json
   # expected value to be a valid JSON string but failed: 765: unexpected token at 'garbage'

   expect('{"foo": "bar"}').to be_json('foo' => 'bar') # ok
   expect('{"foo": "bar"}').to be_json_sym(foo: 'bar') # more convenient

   expect('{"foo": [1, 2, 3]').to be_json_sym(foo: array_including(3)) # nested matchers work
   expect(something_large).to be_json_sym(include(meta: include(next_page: Integer)))

 @param expected Value or matcher to check JSON against. It should implement `#===` method,
   so all standard and custom RSpec matchers work.