Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.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# - Fatal编程技术网

C# 反序列化的json数据为空

C# 反序列化的json数据为空,c#,C#,我有一个被序列化的输入json数据,我知道如何反序列化,因为我的当前代码是空的 输入Json: "{\"Data\":[{\"Comments\":\"Please enter comments\",\"TimeStamp\":\"20210331031638.210\",\"UserName\":\"Rocky\"}]}\n" 代码:

我有一个被序列化的输入json数据,我知道如何反序列化,因为我的当前代码是空的

输入Json:

"{\"Data\":[{\"Comments\":\"Please enter comments\",\"TimeStamp\":\"20210331031638.210\",\"UserName\":\"Rocky\"}]}\n"
代码:

公共类DBData
{
[JsonProperty(“评论”)]
公共字符注释{get;set;}
[JsonProperty(“时间戳”)]
公共字符时间戳{get;set;}
[JsonProperty(“用户名”)]
公共字符用户名{get;set;}
}
虚无乐趣()
{
var outObject1=JsonConvert.DeserializeObject(jsonData);
}

您的属性类型是“char”。这是不对的。将它们更改为字符串

另外,我相信JSON数据的层次结构可能不包括在反序列化中,因此需要一个包含DBData类属性的类来反序列化

编辑:

为了使JSON数据更容易理解,您可以将其重新格式化如下(仅用于查看目的,因为在实际使用中它没有任何问题):

我已经删除了转义字符和其他对这个不重要的东西。您可以看到数据属性是一个数组(用方括号[]括起来),因此可以包含任意数量的数据实例

因此,实际上,这是JSON的正确类模型(注意属性不是必需的):


您的属性类型为“char”。这是不对的。将它们更改为字符串

另外,我相信JSON数据的层次结构可能不包括在反序列化中,因此需要一个包含DBData类属性的类来反序列化

编辑:

为了使JSON数据更容易理解,您可以将其重新格式化如下(仅用于查看目的,因为在实际使用中它没有任何问题):

我已经删除了转义字符和其他对这个不重要的东西。您可以看到数据属性是一个数组(用方括号[]括起来),因此可以包含任意数量的数据实例

因此,实际上,这是JSON的正确类模型(注意属性不是必需的):


@LasseV.Karlsen试图在其评论中布局的内容:

Json建议模型具有以下结构:

class DBData
{
    public Data[] Data {get; set;} // Data is an array of data rows.
}

class Data
{
   [JsonProperty("Comments")]   // <- Mind that these are redundant.
   public string Comments { get; set; } // <- Also mind, the props should be of type string

   [JsonProperty("TimeStamp")]
   public string TimeStamp { get; set; }

   [JsonProperty("UserName")]
   public string UserName { get; set; }
}
classdbdata
{
公共数据[]数据{get;set;}//Data是一个数据行数组。
}
类数据
{

[JsonProperty(“Comments”)]/LasseV.Karlsen试图在其评论中布局的内容:

Json建议模型具有以下结构:

class DBData
{
    public Data[] Data {get; set;} // Data is an array of data rows.
}

class Data
{
   [JsonProperty("Comments")]   // <- Mind that these are redundant.
   public string Comments { get; set; } // <- Also mind, the props should be of type string

   [JsonProperty("TimeStamp")]
   public string TimeStamp { get; set; }

   [JsonProperty("UserName")]
   public string UserName { get; set; }
}
classdbdata
{
公共数据[]数据{get;set;}//Data是一个数据行数组。
}
类数据
{


[JsonProperty(“Comments”)]//这是因为根元素有一个
数据
属性,其余属性都在这个属性中。添加
公共类根{public Data Data{get;set;}}
然后反序列化为该属性。未获取ur点这是否回答了您的问题?这是因为根元素有一个
Data
属性,其余属性位于该属性中。添加
公共类根{public Data Data{get;set;}
然后反序列化为该值。不明白你的意思这是否回答了你的问题?是的,但这只是答案的一半。没有否决,因为这没有错。它只是不能完全解决问题。@Fildor我仍然试图否决,因为它没有回答问题question@DavidG我明白,我只是想说明我的真实想法继续给一些懈怠和机会来改进答案。是的,但这只是答案的一半。我没有投反对票,因为这没有错。这并不能完全解决问题。@Fildor我仍然想投反对票,因为它没有回答问题question@DavidG我明白。我只是想说明我为什么要给一些懈怠和机会为了改进答案。我确实尝试过这种方法,并更改了反序列化的类。但我发现以下错误。无法将当前JSON数组(例如[1,2,3])反序列化为类型“ConsoleApplication1.Data”,因为该类型需要JSON对象(例如{“name”:“value”})要正确反序列化。若要修复此错误,请将JSON更改为JSON对象(例如{“name”:“value”}),或将反序列化类型更改为数组或实现集合接口的类型(例如ICollection、IList)类似于可以从JSON数组反序列化的列表。也可以将JsonArrayAttribute添加到该类型,以强制其从JSON数组反序列化。我将对此进行研究。请稍候。@user3064181可能您键入了错误的代码,它可以正常工作。请确保
Data
属性是如上所示的数组。是的,现在工作正常,感谢您的支持帮助我确实尝试了这种方法,并更改了反序列化的类。但我发现下面的错误。无法将当前JSON数组(例如[1,2,3])反序列化为类型“ConsoleApplication1.Data”,因为该类型需要一个JSON对象(例如{“name”:“value”})来正确反序列化。若要修复此错误,请将JSON更改为JSON对象(例如:{“name”:“value”})或将反序列化类型更改为数组或实现集合接口的类型(例如ICollection、IList)类似于可以从JSON数组反序列化的列表。也可以将JsonArrayAttribute添加到该类型,以强制其从JSON数组反序列化。我将对此进行研究。请稍候。@user3064181可能您键入了错误的代码,它可以正常工作。请确保
Data
属性是如上所示的数组。是的,现在工作正常,感谢您的支持帮助
public class DBData
{
    public Data[] Data { get; set; }
}

public class Data
{
    public string Comments { get; set; }
    public string TimeStamp { get; set; }
    public string UserName { get; set; }
}
class DBData
{
    public Data[] Data {get; set;} // Data is an array of data rows.
}

class Data
{
   [JsonProperty("Comments")]   // <- Mind that these are redundant.
   public string Comments { get; set; } // <- Also mind, the props should be of type string

   [JsonProperty("TimeStamp")]
   public string TimeStamp { get; set; }

   [JsonProperty("UserName")]
   public string UserName { get; set; }
}