I did C-h f C-h f and got a *Help*
buffer describing
describe-function
as a "Lisp function"
defined in help-fns.el
.
I clicked on the file name and searched for "Lisp function"
which lead
me to the function help-fns-function-description-header
whose code
indicated that what we want is subrp
.
(subrp (symbol-function 'car))
==> nil
A bit more consideration would point to help-fns--analyze-function
which disentangles things like aliasing and advising.
I think, however, that you should look at the "source" rather than the result here, i.e., check that the lisp file where json-serialize
could be defined has been loaded - use featurep
for that.