簡體   English   中英

如何將此Json文件轉換為int數組?

[英]How do I turn this Json file into an int array?

我有一個程序可以計算並返回整數數組內的最大數。

我知道如何在數組為int []的情況下返回最大的數字。 但是我不確定如何從json文件返回最大的數字。 必須在Main()內部將json文件作為參數輸入。

所以關鍵是當我運行應用程序時,當json文件是static void Main(string [] args)內部的參數時,程序應返回數字7。

如果我想將json文件作為類Program的參數運行,是否肯定有一些命令,例如dotnet run“ 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。

如果您仍然遇到問題,請嘗試管理一個解決方案,並且該解決方案可以正常工作(命令行為我提供了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庫,最后打印了輸出; 希望這會有所幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM