I would use Jersey, the reference implementation for the JAX-RS API (for working with RESTful web services in Java). When you use it together with JAXB, it's quite easy to expose methods as web services, which can accept data in XML or JSON format. You don't have to do any low-level parsing and formatting of JSON data; Jersey and JAXB can do that almost automatically for you.
The Jersey user guide gives a good overview of how to use it.
In the project I'm currently working on, we're using Jersey and JAXB together with the Grizzly web server as described in section 11.3.1 of the user guide. Grizzly is the multi-threaded socket server.