2011-07-05 13 views
10

pisałem kilka ASP.NET usług internetowych, które używają kodowania JSON, a la:Dlaczego usługi sieciowe ASP.NET JSON zwracają wynik w 'd'?

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

i wrócił JSON jest:

{"d": 42} 

Dlaczego parametr nazwany d? Czy mogę to kontrolować? Powiedz, do e?

Dla porównania, kilka podobnych pytań mam w końcu udało się wykopać:

Odpowiedz

12

Jest to "bezpieczeństwo" funkcja zapobiega powrotowi JSON z możliwości bezpośredniego wykonywania javascript wewnątrz instrukcji Eval. Lub coś bardzo podobnego wzdłuż tych linii.

Więcej informacji na ten temat: http://encosia.com/a-breaking-change-between-versions-of-aspnet-ajax/ przyjrzeć sekcji oznaczonej Waiter, there’s a .d in my msg soup!

+0

Świetny artykuł, który wydaje się być ostateczne słowo na ten temat. Nie mówi, dlaczego wybrano "d", choć ...;) Skrót od danych? –

+0

Przypuszczam, że wybierają d dla skrótów danych, aby dodać minimalną ilość jsonów do ładunku. Prawdopodobnie byłoby o wiele czystsze, gdyby rzeczywiście użyli danych, a nawet ładunku lub innego, bardziej opisowego słowa. –

+0

Po prostu posmakuj zupy! – HuckIt

Powiązane problemy