C# 发出反序列化JSON
我有一个JSON对象:C# 发出反序列化JSON,c#,json,C#,Json,我有一个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对象
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);
Person\u Person=JsonConvert.DeserializeObject(bodyText);
有人能帮我反序列化json字符串对象中的fistname元素并将其存储在我的
\u Person
对象中吗?首先,您发布的json
不正确-没有结尾]
和两个}
-应该是:
"{\"id\":16751112,\"firstname\":{\"value\":\"Sydni\",\"versions\":[{\"value\":\"Sydni\",\"source-type\":\"FORM\",\"source-id\":\"0eec9e33-4e82-4511-85ef-83556395e046\",\"source-label\":\"First Name\"}]}}"
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; }
}
另外,JSON
中的firstname
不是string
,而是object
你的课程应该是:
"{\"id\":16751112,\"firstname\":{\"value\":\"Sydni\",\"versions\":[{\"value\":\"Sydni\",\"source-type\":\"FORM\",\"source-id\":\"0eec9e33-4e82-4511-85ef-83556395e046\",\"source-label\":\"First Name\"}]}}"
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; }
}
公共类版本
{
公共字符串值{get;set;}
公共字符串源类型{get;set;}
公共字符串源id{get;set;}
公共字符串源标签{get;set;}
}
公共类名
{
公共字符串值{get;set;}
公共IList版本{get;set;}
}
公共阶层人士
{
公共int Id{get;set;}
public Firstname Firstname{get;set;}
}
首先,您发布的JSON
不正确-没有关闭]
和两个}
-应该是:
"{\"id\":16751112,\"firstname\":{\"value\":\"Sydni\",\"versions\":[{\"value\":\"Sydni\",\"source-type\":\"FORM\",\"source-id\":\"0eec9e33-4e82-4511-85ef-83556395e046\",\"source-label\":\"First Name\"}]}}"
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; }
}
另外,JSON
中的firstname
不是string
,而是object
你的课程应该是:
"{\"id\":16751112,\"firstname\":{\"value\":\"Sydni\",\"versions\":[{\"value\":\"Sydni\",\"source-type\":\"FORM\",\"source-id\":\"0eec9e33-4e82-4511-85ef-83556395e046\",\"source-label\":\"First Name\"}]}}"
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; }
}
公共类版本
{
公共字符串值{get;set;}
公共字符串源类型{get;set;}
公共字符串源id{get;set;}
公共字符串源标签{get;set;}
}
公共类名
{
公共字符串值{get;set;}
公共IList版本{get;set;}
}
公共阶层人士
{
公共int Id{get;set;}
public Firstname Firstname{get;set;}
}
可能是因为firstname
不是字符串,而是JSON中的一个属性?firstname
在类中是string
,在JSON中firstname
属性是一个对象。我建议将JSON发布到,让它生成正确的Person
C#类。@UweKeim在Visual Studio中,有一个工具,您可以将json字符串作为c#类。“编辑->粘贴特殊->将JSON粘贴为类”。这至少是一个重复项,因为firstname
不是字符串而是JSON中的属性?firstname
在类中是一个string
,在您的json中,firstname
属性是一个对象。我建议您将json发布到,让它生成正确的Person
C#类。@UweKeim在Visual Studio中,有一个工具,您可以将json字符串作为C#类传递。“编辑->粘贴特殊->将JSON粘贴为类”。这至少是一个重复