反序列化嵌套的JSON字符串

3

i have this json string

{
'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)

我想反序列化以上的json字符串,但是得到了null值。你有什么想法出现了哪些问题?
  public static T ConvertFromJSON<T>(String json)
    {
        JavaScriptSerializer serializer = new JavaScriptSerializer();
        return serializer.Deserialize<T>(json);
    }

json


1
能否详细说明为什么它被投票降低了分数?您本可以在这里发表评论,而不是通过投票来回应,这样我就能理解我在发布这个问题时哪里出错了。 - abhijit
JSON字符串在实际场景中完美无缺,我只是发布了与我正在使用的JSON结构相同的参考结构。 - abhijit
你目前使用的是什么来反序列化它(导致出现空值)? - codeulike
它很完美,我已经在JSONLint上检查过了。 - abhijit
正如我已经评论过的那样,我发布的这个 JSON 字符串只是我在代码中使用的原始 JSON 的结构,而并非我在这里发布的实际内容。我只是想知道如何反序列化这样一个嵌套的 JSON 字符串。 - abhijit
显示剩余4条评论
1个回答

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; }
}

你的JSON出现了错误。

'gender':male,

应该是

 'gender': 'male',

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接