- minimal learning curve
- application will return JSON
- need to do auto-complete, ajax-form-validation, rating
The JS Framework that's the most popular nowadays (which means it's easier to get support) is probably jQuery -- and it should be OK for what you need, I'd say.
There's documentation available on the official website :
And you might also want to take a look at :
Take a look at the examples here.
Why? Not only does it satisfy 90% of your requirements, but also has a thriving community of plug-ins.
Now. Is JQuery the "only" solution? No. The Microsoft AJAX client (not server) library is decent too.
ExtJS is a little heavier than jQuery, but the UI widgets it offers are very nice. It supports AJAX, JSON, auto-completion, and form validation, and the demos will quickstart your app. I like ExtJS in part because of the very attractive UIs I can create with little or no help from a graphic artist. Finally, see this discussion to see how we marry ExtJS with Spring MVC.
You should also check Dojo which is a framework for client side scripting. The difference between JQuery and Dojo is that JQuery uses plugins but Dojo already comes with everything you need. Also benchmarking shows that Dojo is usually faster then JQuery on most browsers (I can't find it right now but you can ask around at the #dojo channel on freenone).
If you are still interested in JQuery I suggest you to read this.