Based on this tutorial: JSON Web Service and jQuery with Visual Studio 2008
The web method returns a product that is serialized in JSON format. Since the JSON type does not exist, the return value is String with the JSON format.
On the client side, ajax call returns JSON.
The result looks like {d: 'returned-string-with-JSON-format'}
More precisely, something like: {d:'{"ID":123,"Name":"Surface Pro 2"}'}
Please note that 'returned-string-with-JSON-format' is a string that is not a JSON object, therefore it cannot do result.d.ID .
Instead, you need to convert it to a JSON object using JSON.parse(result.d) or eval(result.d)
In the end, you really want to do this:
result = JSON.parse(result.d)
UPDATE Also consider this demo, where I use JSON in string format and convert it to a JSON object:

Jaider Jun 05 '14 at 16:19 2014-06-05 16:19
source share