如何将此Json文件转换为int数组?

时间:2019-04-30 18:19:48

标签: c# json.net

我有一个程序可以计算并返回整数数组中的最大数。

如果数组是int [],我知道如何返回最大数字。 但是我不确定如何从json文件返回最大的数字。 必须在Main()内部将json文件作为参数输入。

因此,关键是当我运行应用程序时,当json文件是静态void Main(string [] args)内部的参数时,程序应返回数字7。

如果我想将json文件作为程序类的自变量运行,肯定有一些命令像dotnet运行“ data.json”吗?

该程序包含3个文件。 主程序文件。 Max类,带有方法returnMax和showResult。 当然还有json文件。

我已经阅读了newtonsoft文档,但没有找到解决此问题的有价值的东西。

有人可以帮我吗?

主要程序代码:

namespace json
{
  class Program
  {
    static void Main(string[] args)
    {
      // So the jason.file should be put as an argument inside of
      // the static void Main(string[] args).
      // And a 7 should be returned.
      string json = File.ReadAllText(args);
      int[] numbers = JsonConvert.DeserializeObject<int[]>(json);

      Console.WriteLine(Max.showResult(numbers));
    }
  }
}

最大代码:

namespace json
{
  public class Max
  {

    public static dynamic showResult(int[] source)
    { 
      return $"The largest number is: {returnMax(numbers)}";
    }
    public static int returnMax(int[] source)
    {

      int largestNumber = source.Max();
      return largestNumber;

    }
  }
}

data.json文件:

[ 1, 2, 3, 4, 5, 6, 7 ]

因此,当我将json文件作为参数放在static void Main(string[] args)中时,我希望Console.WriteLine(Max.showResult(source))返回7。

1 个答案:

答案 0 :(得分:1)

如果您仍然遇到麻烦,我可以管理一个解决方案并且它可以正常工作(命令行给我7个最大的数字)。 这是我所做的: 1)我修改了json文件:

{
  "numbers": [ 1, 2, 3, 4, 5, 6, 7 ]
}

我进行了此更改,因为拥有与json类似的类很重要 文件,否则Jsondeserializer将无法正常工作(这是我所学到的),因此这是我将在其中存储json数据的相应类:

namespace MaxNumberJson
{
    class JsonDeserializer
    {
    public List<int> numbers { get; set; }
    }
}

2)然后,由于使用了List <>,我以这种方式修改了您的方法(基本上改变了参数):

class MaxNumber
    {
        public string showResult(List<int> source)
        {
            return $"The largest number is: {returnMax(source)}";
        }
        public static int returnMax(List<int> source)
        {

            int largestNumber = source.Max();
            return largestNumber;

        }
    }

3)最后,我在main.cs上写了一些代码:

class Program
    {
        static void Main(string[] args)
        {
            JsonDeserializer jsonDeserializer = new JsonDeserializer();
            MaxNumber maxNumber = new MaxNumber();
            string json = File.ReadAllText(args[0]);
            jsonDeserializer = JsonConvert.DeserializeObject<JsonDeserializer>(json);

            Console.WriteLine(maxNumber.showResult(jsonDeserializer.numbers));
        }
    }

第一个类(JsonDeserializer)是我创建的用于存储json数据格式文件的类;之后,我将通过命令行传递的文件的内容放在字符串中,然后我使用了newtonsoft库,最后打印了输出;希望这会有所帮助!