135 votes

Création de JSON à la volée avec JObject

Pour certains de mes tests unitaires, je veux pouvoir créer des valeurs JSON particulières (des albums de disques dans ce cas) qui peuvent être utilisées comme données d'entrée pour le système testé.

J'ai le code suivant :

var jsonObject = new JObject();
jsonObject.Add("Date", DateTime.Now);
jsonObject.Add("Album", "Me Against The World");
jsonObject.Add("Year", 1995);
jsonObject.Add("Artist", "2Pac");

Cela fonctionne bien, mais je n'ai jamais vraiment aimé la syntaxe de la "chaîne magique" et je préférerais quelque chose de plus proche de la syntaxe des propriétés expando en JavaScript, comme ceci :

jsonObject.Date = DateTime.Now;
jsonObject.Album = "Me Against The World";
jsonObject.Year = 1995;
jsonObject.Artist = "2Pac";

4voto

Manjunath Bilwar Points 937

Une façon simple de créer un JObject newtonsoft à partir de propriétés.

Ceci est un exemple de propriétés d'utilisateur

public class User
{
    public string Name;
    public string MobileNo;
    public string Address;
}

et je veux que cette propriété dans le JObject de Newtonsoft soit :

JObject obj = JObject.FromObject(new User()
{
    Name = "Manjunath",
    MobileNo = "9876543210",
    Address = "Mumbai, Maharashtra, India",
});

La sortie sera comme ceci :

{"Name":"Manjunath","MobileNo":"9876543210","Address":"Mumbai, Maharashtra, India"}

-4voto

Nirmal Points 926

Vous pouvez utiliser la bibliothèque Newtonsoft et l'utiliser comme suit

using Newtonsoft.Json;

public class jb
{
     public DateTime Date { set; get; }
     public string Artist { set; get; }
     public int Year { set; get; }
     public string album { set; get; }

}
var jsonObject = new jb();

jsonObject.Date = DateTime.Now;
jsonObject.Album = "Me Against The World";
jsonObject.Year = 1995;
jsonObject.Artist = "2Pac";

System.Web.Script.Serialization.JavaScriptSerializer oSerializer =
         new System.Web.Script.Serialization.JavaScriptSerializer();

string sJSON = oSerializer.Serialize(jsonObject );

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X