讀取與寫入 JSON

程式碼

using System; using System.IO; using System.Collections.Generic; using Newtonsoft.Json; namespace Hello { class MainClass { private Emprogria.DecisionPriority myDecision = null; public MainClass() { this.myDecision = new Emprogria.DecisionPriority (maxVale:5); } public List<Emprogria.InputData> InputData() { List<Emprogria.InputData> myData = new List<Emprogria.InputData> (); Emprogria.InputData myElement; myElement.startNode = "F1"; myElement.endNode = "F2"; myElement.compare = Emprogria.nodeCompare.greater; myElement.weight = 2; myData.Add (myElement); myElement.startNode = "F1"; myElement.endNode = "F3"; myElement.compare = Emprogria.nodeCompare.less; myElement.weight = 3; myData.Add (myElement); myElement.startNode = "F1"; myElement.endNode = "F4"; myElement.compare = Emprogria.nodeCompare.greater; myElement.weight = 5; myData.Add (myElement); myElement.startNode = "F2"; myElement.endNode = "F3"; myElement.compare = Emprogria.nodeCompare.greater; myElement.weight = 3; myData.Add (myElement); myElement.startNode = "F2"; myElement.endNode = "F4"; myElement.compare = Emprogria.nodeCompare.less; myElement.weight = 2; myData.Add (myElement); myElement.startNode = "F3"; myElement.endNode = "F4"; myElement.compare = Emprogria.nodeCompare.greater; myElement.weight = 4; myData.Add (myElement); return myData; } public List<Emprogria.InputData> LoadJSONFile(String jsonFile) { List<Emprogria.InputData> myData = null; string json = ""; try { using (StreamReader inFile = new StreamReader(jsonFile)) { json = inFile.ReadLine(); } myData = JsonConvert.DeserializeObject<List<Emprogria.InputData>>(json); } catch { } return myData; } public void WriteData2JSON(List<Emprogria.InputData> myData, String jsonFile) { if (myData != null) { try { string json = JsonConvert.SerializeObject (myData); using (StreamWriter outFile = new StreamWriter (jsonFile)) { outFile.Write (json); } } catch { } } } public void CalcDecision(List<Emprogria.InputData> myData, int scale=2) { this.myDecision.InputData (myData, scale); } public void PrintDecision() { SortedDictionary<String, double> myDecisionList = this.myDecision.GetDecisionList (); if (myDecisionList != null) { foreach (KeyValuePair<string, double> p in myDecisionList) { Console.WriteLine (String.Format ("{0}\t{1:0.00}", p.Key, p.Value)); } } } public static void Main (string[] args) { MainClass myTask = new MainClass (); List<Emprogria.InputData> myData = null; String jsonFile = "Hello.json"; if (args.Length == 1) { myData = myTask.InputData (); myTask.WriteData2JSON (myData, jsonFile); } else { jsonFile = args [1]; myData = myTask.LoadJSONFile (jsonFile); } myTask.CalcDecision (myData, scale:2); myTask.PrintDecision (); } } }