【问题标题】:Reading Json file, and putting information into an array c# [closed]读取 Json 文件,并将信息放入数组 c# [关闭]
【发布时间】:2019-12-17 12:19:54
【问题描述】:

我有一段 JSON 文件:

[
    {"Name": "Chelsea",
     "GoalDiff": 20,
     "Points": 25
    },
    {"Name": "Liverpool",
     "GoalDiff": 30,
     "Points": 35
    },
    {"Name": "Man United",
     "GoalDiff": 5,
     "Points": 18
    }

]

我需要将它们放入每个对象的数组中,在那里我可以轻松地访问它们以进行排序、用作变量并放入公式中。

编辑:

我已经尝试了这个站点的一些东西来读取文件,例如没有成功

class Program
    {
        public class TeamInfo
        {
            public string Name {get; set;} 
            public int GoalDiff {get; set;}
            public int points { get; set; }
        }
        public void LoadJson()
        {
            using(StreamReader r = new StreamReader("TXT1.json"))
            {
                string json = r.ReadToEnd();
                List<TeamInfo> items = JsonConvert.DeserializeObject<List<TeamInfo>>(json);
            }
        }
        static void Main(string[] args)
        {
            dynamic array = JsonConvert.DeserializeObject(json);
            foreach (var item in array)
            {
                Console.WriteLine(item.temp, item.vcc)
            }

        }

    }

同样地,newtonsoft 网站也没有帮到我很多忙。

【问题讨论】:

  • 好的。你有什么问题?
  • 到目前为止你尝试了什么?有没有源代码分享一下
  • 听起来你需要一个类,如 Team,其属性为 NameGoalDiffPoints,然后只需将 JSON 反序列化为该类的列表或数组即可。跨度>
  • 这能回答你的问题吗? Deserialize JSON with C#
  • 如果您使用.Net Core 3.0 或更高版本,我的answer 链接问题应该会有所帮助

标签: c# arrays json deserialization


【解决方案1】:

首先创建一个这样的类。

public class FootballTeams
{
    public string Name { get; set; }
    public int GoalDiff { get; set; }
    public int Points { get; set; }
}

然后读取数据并使用Newtonsoft.Json

var json = File.ReadAllText(@"data.json");
var footballTeams = JsonConvert.DeserializeObject<List<FootballTeams>>(json);

// 用footballTeams 做点什么 例如:footballTeams.Select(team=&gt;team.Name.Equals("Chelsea"));

【讨论】:

  • 是否需要进一步添加到数组中,或者这是摆脱它并建议使用 linq 进行排序等
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-07
相关资源
最近更新 更多