Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 发出反序列化JSON_C#_Json - Fatal编程技术网

C# 发出反序列化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对象

我有一个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粘贴为类”。这至少是一个重复