It seems that there are circular references in your object hierarchy which is not supported by the JSON serializer. You could pick up only the properties you need in the view:
I would suggest you to create a class like this for Image and bind the image properties.
public class DataItemImage
{
public string ID { get; set; }
public string Source { get; set; }
public string Width { get; set; }
public string Height { get; set; }
public string Alt { get; set; }
public DemoDataItemImage(Sitecore.Data.Fields.ImageField obj)
{
string mediaUrl = Sitecore.Resources.Media.MediaManager.GetMediaUrl(obj.MediaItem);
ID = obj.MediaItem.ID.ToString();
Source = mediaUrl;
Width = obj.Width;
Height = obj.Height;
Alt = obj.Alt;
}
}
And then use this to create the Json object.
Hope this helps.