J'ai un cours comme celui-ci;
public class MyStok
{
public int STId { get; set; }
public int SM { get; set; }
public string CA { get; set; }
public string Br { get; set; }
public string BNo { get; set; }
public decimal Vat { get; set; }
public decimal Price { get; set; }
}
Je deserilaze comme ça;
string sc= e.ExtraParams["sc"].ToString();
MyStok myobj = JSON.Deserialize<MyStok>(sc);
ma sortie semble aimer ceci (string sc) sur fiddler
[
{
"STId": 2,
"CA": "hbh",
"Br": "jhnj",
"SM": 20,
"Vat": 10,
"Price": 566,
"BNo": "1545545"
}
]
mais je reçois le message d'erreur Impossible de désérialiser le tableau JSON actuel (par exemple, [1,2,3]) en type
je vous remercie .
Il semble que la chaîne contienne un tableau avec un seul objet MyStok
. Si vous supprimez les crochets aux deux extrémités de l'entrée, vous devriez pouvoir désérialiser les données en tant qu'objet unique:
MyStok myobj = JSON.Deserialize<MyStok>(sc.Substring(1, sc.Length-2));
Vous pouvez également désérialiser le tableau dans une liste d'objets MyStok
et prendre l'objet à l'index zéro.
var myobjList = JSON.Deserialize<List<MyStok>>(sc);
var myObj = myobjList[0];
Pour le type de tableau, essayez celui-ci.
List<MyStok> myDeserializedObjList = (List<MyStok>)Newtonsoft.Json.JsonConvert.DeserializeObject(sc), typeof(List<MyStok>));
S'il vous plaît Voir ici pour plus de détails pour désérialiser Json
HttpClient webClient = new HttpClient();
Uri uri = new Uri("your url");
HttpResponseMessage response = await webClient.GetAsync(uri)
var jsonString = await response.Content.ReadAsStringAsync();
var objData = JsonConvert.DeserializeObject<List<CategoryModel>>(jsonString);