If you're willing to rough it a little, Cinnamon Bay Campground is a great place to stay on St. John. You can either camp on baresites (some right on the beach), stay in platform tents (w/ cots and a grill) or in a "cottage," a cement-and-screen structure, again with beds, linens, a grill, etc. We were there last month in a cottage and we spent $70/per night. Not bad! Of course, there are only public outhouses (running water and flush toilets) and cold showers, but we were up for it--we would just put on our swimsuits and stroll out to an amazing, gorgeous, perfect beach. Their website is
Cinnamon Bay Campground, St. John, U.S. Virgin Islands .