Mam następujące metody w moim Web API
public void Put(string id, [FromBody]IContent value) {
//Do stuff
}
Używam backbone.js wysłać następujące JSON do serwera przy użyciu Skrzypek wartość jest null:
{
"id": "articles/1",
"heading": "Bar",
"$type": "BrickPile.Samples.Models.Article, BrickPile.Samples"
}
ale jeśli dodam właściwość $ typ pierwszy w JSON object deserializacji działa poprawnie, zobacz:
{
"$type": "BrickPile.Samples.Models.Article, BrickPile.Samples",
"id": "articles/1",
"heading": "Bar"
}
możliwe jest skonfigurowanie newtonsoft celu sprawdzenia $ type salo rty w dowolnym miejscu obiektu zamiast pierwszej właściwości lub czy mogę skonfigurować szkielet, aby zawsze najpierw dodawać właściwość $type
w obiekcie JSON?
Spójrz na odpowiedzi @ Leviego, on jest facetem bezpieczeństwo dla zespołu internetowego. – RickAndMSFT
To jest kompletnie szalone, że działa w ten sposób we wbudowanych systemach JSON.NET i Microsoft ... W wielu bibliotekach JSON, takich jak Jackson w JAVA, NIE jest zagwarantowane, że mapa (którą możesz zbudować w Jackson) jest uporządkowana . W rzeczywistości jest to mapa, a zatem żadne zamówienie nie jest utrzymywane. Nie masz więc żadnej kontroli nad tym, gdzie pojawi się typ $ lub typ __type w JSON. Czasami to pierwszy i działa, czasami nie. W związku z tym niemożliwe jest wyśledzenie tej funkcji ... – Ted