Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.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_Serialization - Fatal编程技术网

C# 使用单独的列表和对象序列化Json文件

C# 使用单独的列表和对象序列化Json文件,c#,json,serialization,C#,Json,Serialization,我有一个JSON文件,包含两个字符串对象数组和一个字符串。我需要序列化它,这样我就可以有两个不同的对象,每个对象包含JSON文件中的一个对象,或者类似的列表,如果字符串是单个字符串,那么第一个或最后一个成员就是 我尝试过这里的解决方案,但它给了我错误 using (StreamReader r = new StreamReader("Licensce.json")) { string json = r.ReadToEnd(); List<string> items =

我有一个JSON文件,包含两个字符串对象数组和一个字符串。我需要序列化它,这样我就可以有两个不同的对象,每个对象包含JSON文件中的一个对象,或者类似的列表,如果字符串是单个字符串,那么第一个或最后一个成员就是

我尝试过这里的解决方案,但它给了我错误

using (StreamReader r = new StreamReader("Licensce.json")) {
    string json = r.ReadToEnd();
    List<string> items = JsonConvert.DeserializeObject<List<string>>(json);
}
错误是:

无法将当前JSON对象(例如{“名称”:“值”})反序列化为类型“System.Collections.Generic.List`1[System.String]”,因为该类型需要JSON数组(例如[1,2,3])才能正确反序列化。 若要修复此错误,请将JSON更改为JSON数组(例如[1,2,3]),或更改反序列化类型,使其成为可以从JSON对象反序列化的正常.NET类型(例如,不是integer之类的基元类型,也不是数组或列表之类的集合类型)。还可以将JsonObjectAttribute添加到类型中,以强制它从JSON对象反序列化


检查您的json格式或与下面的格式进行比较

 var json = @"{
               'UsbDevices': [
                            'SA',
                            'SB',
                            'SC',
                            'SE2',
                            'SF',
                            'M'],
               'DeviceConnectivityExperationDateTime' : '2020-12-30'
              }";                
                var items = JsonConvert.DeserializeObject<Data>(json);           
        }

public class Data
{
   public Data()
   {
      this.UsbDevices = new List<string>();
   }
   public List<string> UsbDevices { get; set; }
   public string DeviceConnectivityExperationDateTime { get; set; }
 }
var json=@”{
“UsbDevices”:[
"SA",,
“某人”,
“SC”,
“SE2”,
“SF”,
“M”],
“设备连接ExperationDateTime”:“2020-12-30”
}";                
var items=JsonConvert.DeserializeObject(json);
}
公共类数据
{
公共数据()
{
this.UsbDevices=新列表();
}
公共列表UsbDevices{get;set;}
公共字符串设备连接扩展日期时间{get;set;}
}

您已经尝试过这个
JsonConvert.DeserializeObject(json)
但是,json显然不是字符串列表。你为什么不像所有的例子所显示的那样设计一个具体的类呢?无论如何,我认为这个太宽泛了,因为有太多的例子说明如何在stackoverflow和internetI上实现这一点,我不知道这是否是因为打字错误,但请注意你的Json文件结构是不正确的。
 var json = @"{
               'UsbDevices': [
                            'SA',
                            'SB',
                            'SC',
                            'SE2',
                            'SF',
                            'M'],
               'DeviceConnectivityExperationDateTime' : '2020-12-30'
              }";                
                var items = JsonConvert.DeserializeObject<Data>(json);           
        }

public class Data
{
   public Data()
   {
      this.UsbDevices = new List<string>();
   }
   public List<string> UsbDevices { get; set; }
   public string DeviceConnectivityExperationDateTime { get; set; }
 }