++Want
{
"ProductId": 1,
"ProductName": "Coca Cola"
}
4 Réponses :
Il est préférable d'utiliser le mécanisme de sérialisation C #. Vous aurez peut-être besoin d'une classe distincte pour cette sérialisation «limitée» (au cas où vous voudriez que ces propriétés soient sérialisées dans d'autres scénarios), mais cela devrait le faire. Jetez un œil ici: Comment exclure une propriété de la sérialisation Json
Dans la même classe, créez deux fonctions retournant un booléen comme ceci:
public bool ShouldSerializedt()
{
return false;
}
public bool ShouldSerializeCategory()
{
return false;
}
La fonction retourne un booléen. Son nom est ShouldSerialize> et le type de retour du comportement de sérialisation des contrôles booléens
Je ne comprends pas, je suis débutant.
Dans la même classe Product où vous définissez des propriétés telles que ProductId, ProductName, etc. définissez les fonctions que j'ai mentionnées. Vérifiez le nom des deux fonctions. Le nom commence par «ShouldSerialize» et se termine par «dt» ou «Category» qui sont des noms de propriétés qui ne doivent pas être sérialisées. Si une telle fonction renvoie false, la propriété correspondante ne sera pas sérialisée.
Vous pouvez utiliser l'attribut [ScriptIgnore] de System.Web.Script.Serialization sur chaque propriété que vous souhaitez exclure de l'objet lors de la sérialisation ou de la désérialisation:
using System.Web.Script.Serialization;
public class Product{
public int ProductId { get; set; }
public string ProductName { get; set; }
[ScriptIgnore]
public DataTable dt = new DataTable();
[ScriptIgnore]
public Category Category = new Category();
}
Pouvez-vous me parler de Controller?
Le contrôleur fonctionne bien et ne nécessite aucune modification.
Essayez [ScriptIgnore] de System.Web.Script.Serialization au lieu de [JsonIgnore] et faites-moi savoir que cela fonctionne.
utilisez [ScriptIgnore] au lieu de [JsonIgnore] Cela fonctionne. Merci.
Heureux que cela ait aidé. Et puisque vous utilisez JavaScriptSerializer , [JsonIgnore] ne fonctionnerait pas pour vous.
Annotez le champ que vous souhaitez exclure avec [JsonIgnore]
J'essaye déjà [JsonIgnore] Ça ne marche pas. mais utilisez [ScriptIgnore] C'est du travail. Réponse d'en haut.
Une manière possible est de renvoyer un objet anonyme comme
return Json (new {ProductId = dto.ProductId, ...});Possibilité de duplication de sérialiser uniquement certaines propriétés spécifiques d'une classe?