As far as I know its not currently possible to return JSON in asp.net, it could be an inadvertant policy issue where microsoft doesnt want people to use other products just like datatable which is not returned as webservice. But you can always convert xml to json.
However webservice can return JSON data is when its called from within ASP.NET AJAX pages using the ScriptManager - which may not be sufficent if services are ultimately going to be called from a php application etc...
You can however implement your own IHttpHandlerFactor and IHttpHandler classes. They can then intercept the webservice calls and check classes, which return JSON using the JavaScriptSerializer, or the generic WebServiceHandlerFactory().
the flag works out to be "application/OrYxJson" within the Context-Type property of the request. If this property is set, JSON gets returned, otherwise you get good old SOAP.
..
Please Mark Post that helped you as answer, also include a summary of what solved the problem as it helps others in similar situations