反序列化嵌套的json字符串

abh*_*jit 3 c# json

我有这个json字符串

{
'studentinfo':
{
'name':'abc',
'age':41,
'gender':male,
 address:
{
'street':'asd',
'city':'ipd',
'state':'mah'
},
'subject':[
{
'name':'Arts','marks':40,'grade':'a'
},
{
'name':'Science','marks':40,'grade':'a'
},
{
'name':'Commerce','marks':40,'grade':'a'
}
]
}
}

class root
{
public list<studentinfo> studentinfo;
public list<address> address;
public list<subject> subject;
}

class studentinfo
{}

class address
{}

class subject
{}

JSONSerializer.ConvertFromJSON<root>(JSONData)
Run Code Online (Sandbox Code Playgroud)

我想反序列化上面的json字符串,但我得到空值?知道哪里不对吗?

  public static T ConvertFromJSON<T>(String json)
    {
        JavaScriptSerializer serializer = new JavaScriptSerializer();
        return serializer.Deserialize<T>(json);
    }
Run Code Online (Sandbox Code Playgroud)

JSON

Lef*_*tyX 5

尝试更改您的类,如下所示:

class root
{
    public root()
    {
    }

    public studentinfo studentinfo { get; set; }
}

class studentinfo
{
    public studentinfo()
    {
        subject = new List<subject>();
    }
    public string name { get; set; }
    public int age { get; set; }
    public string gender { get; set; }

    public address address;
    public List<subject> subject;
}

class address
{
    public string street { get; set; }
    public string city { get; set; }
    public string state { get; set; }
}

class subject
{
    public string name { get; set; }
    public int marks { get; set; }
    public string grade { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

你的JSON有一个错误

'gender':male,
Run Code Online (Sandbox Code Playgroud)

应该

 'gender': 'male',
Run Code Online (Sandbox Code Playgroud)