一尘不染

无法将当前JSON数组(例如[1,2,3])反序列化为type

json

我有一堂这样的课。

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])反序列化为这些代码中的错误类型。

谢谢 。


阅读 507

收藏
2020-07-27

共1个答案

一尘不染

看起来该字符串包含其中包含单个MyStok对象的数组。如果从输入的两端删除方括号,则应该能够将数据反序列化为单个对象:

MyStok myobj = JSON.Deserialize<MyStok>(sc.Substring(1, sc.Length-2));

您也可以将数组反序列化为MyStok对象列表,然后将对象从索引零处取出。

var myobjList = JSON.Deserialize<List<MyStok>>(sc);
var myObj = myobjList[0];
2020-07-27