Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.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# 在C中从filestream反序列化多个对象#_C#_.net_Json_Json.net - Fatal编程技术网

C# 在C中从filestream反序列化多个对象#

C# 在C中从filestream反序列化多个对象#,c#,.net,json,json.net,C#,.net,Json,Json.net,我无法从文件流反序列化多个JSON对象;我得到一个序列化异常 我可以用一个对象,但不能用多个对象。 我正在从.txt文件中尝试此操作: JSON: C#代码: 公共类程序 { 私有静态列表团队成员=新列表(); 私有静态列表teamMembersDeserialized=新列表(); 公共静态void Main(字符串[]args) { 字符串teamFile=@“C:\Users\Precision\Downloads\Serializacio\csharks.txt”; 字符串teamFil

我无法从文件流反序列化多个JSON对象;我得到一个序列化异常

我可以用一个对象,但不能用多个对象。 我正在从.txt文件中尝试此操作:

JSON:

C#代码:

公共类程序
{
私有静态列表团队成员=新列表();
私有静态列表teamMembersDeserialized=新列表();
公共静态void Main(字符串[]args)
{
字符串teamFile=@“C:\Users\Precision\Downloads\Serializacio\csharks.txt”;
字符串teamFileJson=@“C:\Users\Precision\Downloads\Serializacio\csharksJSON.json”;
字符串teamFileJson2=@“C:\Users\Precision\Downloads\Serializacio\csharksJSON2.json”;
使用(FileStream fs=newfilestream(teamFile,FileMode.Open,FileAccess.Read))
{
使用(StreamReader=新StreamReader(fs))
{
列表成员数据=新列表();
while(true)
{
字符串行=reader.ReadLine();
如果(行==null)
{
打破
}
memberData=line.Split(“”).ToList();
TeamMember=newTeamMember(memberData[0],memberData[1],int.Parse(memberData[2]);
团队成员。添加(成员);
}
}
}
使用(FileStream fs=newfilestream(teamFileJson、FileMode.OpenOrCreate、FileAccess.Write))
{
foreach(团队成员中的团队成员)
{
Console.WriteLine(member.ToString());
DataContractJsonSerializer jsonSerializer=新的DataContractJsonSerializer(member.GetType());
jsonSerializer.WriteObject(fs,成员);
}
}
使用(FileStream fs2=File.OpenRead(teamFileJson2))
{
foreach(团队成员中的团队成员)
{
DataContractJsonSerializer jsonSerializer=新的DataContractJsonSerializer(member.GetType());
{
TeamMember memberNew=jsonSerializer.ReadObject(fs2)作为TeamMember;
teamMembersDeserialized.Add(memberNew);
}                    
}
}
foreach(teamMembersDeserialized中的TeamMember成员)
{
Console.WriteLine(member.ToString());
}
Console.ReadKey();
}
}

以下示例解析JSON。我正在使用Newtonsoft.Json名称。如果你需要任何额外的帮助,请告诉我

void Main()
{
    var json = @"[
        {
            'Name': 'imi',
            'TeamName': 'csharks'
        },
        {
            'Name': 'romeo',
            'TeamName': 'csharks'
        },
        {
            'Name': 'peti',
            'TeamName': 'csharks'
        },
        {
            'Name': 'berti',
            'TeamName': 'csharks'
        },
        {
            'Name': 'bala',
            'TeamName': 'csharks'
        }]";

    var teams = JsonConvert.DeserializeObject<List<Team>>(json);

    teams.ForEach(x => Console.WriteLine($"Name: {x.Name}, Team: {x.TeamName}"));
}

public class Team
{
    public String Name { get; set; }
    public String TeamName { get; set; }
}
要从文件中读取此JSON,可以执行以下操作:

var filename = Path.Combine(
    Environment.GetFolderPath(Environment.SpecialFolder.Desktop),
    "test.json");

var json = File.ReadAllText(filename);

下面的示例解析JSON。我正在使用Newtonsoft.Json名称。如果你需要任何额外的帮助,请告诉我

void Main()
{
    var json = @"[
        {
            'Name': 'imi',
            'TeamName': 'csharks'
        },
        {
            'Name': 'romeo',
            'TeamName': 'csharks'
        },
        {
            'Name': 'peti',
            'TeamName': 'csharks'
        },
        {
            'Name': 'berti',
            'TeamName': 'csharks'
        },
        {
            'Name': 'bala',
            'TeamName': 'csharks'
        }]";

    var teams = JsonConvert.DeserializeObject<List<Team>>(json);

    teams.ForEach(x => Console.WriteLine($"Name: {x.Name}, Team: {x.TeamName}"));
}

public class Team
{
    public String Name { get; set; }
    public String TeamName { get; set; }
}
要从文件中读取此JSON,可以执行以下操作:

var filename = Path.Combine(
    Environment.GetFolderPath(Environment.SpecialFolder.Desktop),
    "test.json");

var json = File.ReadAllText(filename);

我很困惑文件不是json?团队成员来自哪里?看起来不像是有效的json?抱歉!更新!这是否有效(json是从“[”到“]”的整个文件):var my_array=JsonConvert.DeserializeObject(json)?(参考)我已经成功了!伙计们!DataContractJsonSerializer jsonSerializer=新的DataContractJsonSerializer(类型(列表));readMembers=jsonSerializer.ReadObject(fs2)作为列表;我很困惑文件不是json?团队成员来自哪里?看起来不像是有效的json?抱歉!更新!这是否有效(json是从“[”到“]”的整个文件):var my_array=JsonConvert.DeserializeObject(json)?(参考)我已经成功了!伙计们!DataContractJsonSerializer jsonSerializer=新的DataContractJsonSerializer(类型(列表));readMembers=jsonSerializer.ReadObject(fs2)作为列表;
Name: imi, Team: csharks
Name: romeo, Team: csharks
Name: peti, Team: csharks
Name: berti, Team: csharks
Name: bala, Team: csharks
var filename = Path.Combine(
    Environment.GetFolderPath(Environment.SpecialFolder.Desktop),
    "test.json");

var json = File.ReadAllText(filename);