亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

有沒有辦法知道在C#中迭代和分析JSON字符串時哪個是最后一個令牌?

有沒有辦法知道在C#中迭代和分析JSON字符串時哪個是最后一個令牌?

C#
拉莫斯之舞 2022-08-20 17:10:58
我正在解析字符串上的一些JSON數據,以將其傳遞到具有自定義格式的文件。但是我需要知道哪個是文件的最后一個標記,以便我用“}”而不是“}”關閉標記(這將是,沒有逗號才能獲得正確的語法)。我試圖使用該屬性獲取最后一個令牌,但它并不像我想象的那樣工作。Last這是我用來解析數據并寫入文件的函數(它還將所需的數據輸出到終端,但不是在JSON數據中,這就是為什么我首先解析它):private static void ParseData()        {            JObject jsonData;            try            {                using (StreamWriter file = new StreamWriter(Globals.dataFile))                {                    file.WriteLine("{");                    jsonData = JObject.Parse(Globals.json);                    Console.WriteLine("*********************************************");                    foreach (JToken tokens in jsonData["indicator"]["values"])                    {                        Console.WriteLine("Fecha y hora: " + tokens["datetime"] + " Valor: " + tokens["value"] + Environment.NewLine + "*********************************************");                        file.Write(Environment.NewLine + "\t{" + Environment.NewLine + "\t\t\"datetime\": " + tokens["datetime"] + ",");                        file.WriteLine("\t\t\"value\": " + tokens["value"]);                        if (tokens != tokens.Last)                        {                            file.WriteLine("\t},");                            Console.WriteLine("\t},");                        }                        else                        {                            Console.WriteLine("\t}");                        }                    }                    file.WriteLine("}");                }            }            catch (Exception ex)            {                PrintExceptionMessage(ex);            }        }
查看完整描述

1 回答

?
翻過高山走不出你

TA貢獻1875條經驗 獲得超3個贊

您需要將所選鍵/值對從json解析為類對象列表,然后再次將其保存到新文件中,例如


private static void ParseData()

{

    string json = File.ReadAllText(@"Path to your input json file");


    JObject jsonData = JObject.Parse(json);


    List<MyCustomClass> output = new List<MyCustomClass>();


    foreach (JToken tokens in jsonData["indicator"]["values"])

    {

        output.Add(new MyCustomClass { datetime = tokens["datetime"].ToString(), value = tokens["value"].ToString() });

    }


    File.WriteAllText(@"Path to your output json file", JToken.FromObject(output).ToString());

}

你需要一個類對象來解析你的鍵/值對,


class MyCustomClass

{

    public string datetime { get; set; }

    public string value { get; set; }

}

輸出:


[

  {

    "datetime": "31-01-2019 05:30:00 AM",

    "value": "49.38"

  },

  {

    "datetime": "31-01-2019 06:30:00 AM",

    "value": "47.46"

  },

  {

    "datetime": "31-01-2019 07:30:00 AM",

    "value": "46.82"

  },

  {

    "datetime": "31-01-2019 08:30:00 AM",

    "value": "46.5"

  },

  {

    "datetime": "31-01-2019 09:30:00 AM",

    "value": "47.36"

  },

  {

    "datetime": "31-01-2019 10:30:00 AM",

    "value": "50.05"

  },

  {

    "datetime": "31-01-2019 11:30:00 AM",

    "value": "56.61"

  },

  {

    "datetime": "31-01-2019 12:30:00 PM",

    "value": "65.58"

  },

  {

    "datetime": "31-01-2019 01:30:00 PM",

    "value": "66.59"

  },

  {

    "datetime": "31-01-2019 02:30:00 PM",

    "value": "66.49"

  },

  {

    "datetime": "31-01-2019 03:30:00 PM",

    "value": "65.54"

  },

  {

    "datetime": "31-01-2019 04:30:00 PM",

    "value": "63.71"

  },

  {

    "datetime": "31-01-2019 05:30:00 PM",

    "value": "61.94"

  },

  {

    "datetime": "31-01-2019 06:30:00 PM",

    "value": "56.58"

  },

  {

    "datetime": "31-01-2019 07:30:00 PM",

    "value": "56.08"

  }

]


查看完整回答
反對 回復 2022-08-20
  • 1 回答
  • 0 關注
  • 119 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號