Since Json is a tree-based serialization format, it has problems with references like A->B->A.
I've read somewhere that you can use ScriptIgnore attribute in your viewmodels to prevent this error. But have not tested it.
You can change your code to the following (use anonymous types) to retrieve the items successfully:
var p = newsRepository.AllIncluding(news => news.Category, news => news.Image)
.Select(n => new {id = n.Id, Body = n.Body});
Include any other property you wish to display in the last Select method. This makes your Json results more lightweight too.