我有一堂这样的课。
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; } }
我这样绝望。
string sc= e.ExtraParams["sc"].ToString(); MyStok myobj = JSON.Deserialize<MyStok>(sc);
我的输出在小提琴手上看起来像这样(字符串sc)
[ { "STId": 2, "CA": "hbh", "Br": "jhnj", "SM": 20, "Vat": 10, "Price": 566, "BNo": "1545545" } ]
但是我收到错误消息:无法将当前的JSON数组(例如[1,2,3])反序列化为这些代码中的错误类型。
谢谢 。
看起来该字符串包含其中包含单个MyStok对象的数组。如果从输入的两端删除方括号,则应该能够将数据反序列化为单个对象:
MyStok
MyStok myobj = JSON.Deserialize<MyStok>(sc.Substring(1, sc.Length-2));
您也可以将数组反序列化为MyStok对象列表,然后将对象从索引零处取出。
var myobjList = JSON.Deserialize<List<MyStok>>(sc); var myObj = myobjList[0];