Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why do ASP.NET JSON web services return the result in 'd'?

I wrote some ASP.NET web services that use JSON encoding, a la:

[WebInvoke()]
[OperationContract]
public int SetInformation(int recordid, string data)
{
    return 42;
}

and the returned JSON is:

{"d": 42}

Why is the parameter named d? Can I control that? Say, to e?

For reference, a few similar questions I've finally been able to dig up:

  • What does .d in JSON mean?
  • How to change ASP.NET WebMethod's 'd' identifier in a JSON response, to a different name?
  • Returning HTML from JSON webservice - what is the ".d"?
like image 203
Scott Stafford Avatar asked Jul 05 '11 20:07

Scott Stafford


1 Answers

This is a "security" feature that prevents the JSON from being returned from being able to be directly executed javascript inside an Eval statement. Or something very similar along these lines.

More information on this topic: http://encosia.com/a-breaking-change-between-versions-of-aspnet-ajax/ take a look at the section labeled Waiter, there’s a .d in my msg soup!

like image 107
Chris Marisic Avatar answered Oct 17 '22 22:10

Chris Marisic