我有一个JSON对象:
string bodyText = " {\"id\":16751112,\"firstname\":{\"value\":\"Sydni\",\"versions\":[{\"value\":\"Sydni\",\"source-type\":\"FORM\",\"source-id\":\"0eec9e33-4e82-4511-85ef-83556395e046\",\"source-label\":\"First Name\"} ";
和一个映射到json对象的类:
public class Person
{
public string firstname { get; set; }
public string id { get; set; }
}
以下代码填充了id属性,但不填充名字:
Person _Person = JsonConvert.DeserializeObject<Person>(bodyText);
有人可以帮我反序列化json字符串对象中的fistname元素并存储在我的_Person
对象中吗?
答案 0 :(得分:3)
首先,您发布的JSON
不正确 - 没有结束]
和两个}
- 它应该是:
"{\"id\":16751112,\"firstname\":{\"value\":\"Sydni\",\"versions\":[{\"value\":\"Sydni\",\"source-type\":\"FORM\",\"source-id\":\"0eec9e33-4e82-4511-85ef-83556395e046\",\"source-label\":\"First Name\"}]}}"
此外,firstname
中的JSON
不是string
,它是对象。
你的课程应该是:
public class Version
{
public string Value { get; set; }
public string Source-type { get; set; }
public string Source-id { get; set; }
public string Source-label { get; set; }
}
public class Firstname
{
public string Value { get; set; }
public IList<Version> Versions { get; set; }
}
public class Person
{
public int Id { get; set; }
public Firstname Firstname { get; set; }
}