2017-07-31 4 views
0

私はローカルのJsonファイルを持っています。削除し、 を作成し、値を変更し、getallしてください。ハンドルjsonファイルcsharpコンソール

SO、その私のJSONの例

[ { 
    "Alerts": { 
    "Name": "RoseDeal", 
    "Description": "Problème au sein de Rosedeal", 
    "StartDate": "2017-07-17T00:00:00", 
    "EndDate": "2008-07-19T00:00:00", 
    "Niveau": "Urgent", 
    "Type": "Girophare", 
    "Id": 1 
    } } ] 

私は試してみるためのコンソールプログラムで動作します。

public bool DeleleAlert(int alertId) 
{     
    var filePath = @"C:\Users\korben\Documents\Visual Studio  2017\Projects\SaveFiles\SaveFiles\json\alerts.json"; 
    string Json = File.ReadAllText(filePath); 
    var alerts = JsonConvert.DeserializeObject<List<Alert>>(Json); 
    var newJsonString = JsonConvert.SerializeObject(alerts.Where(i => i.Id != alertId)); 
    return true; 
} 


public bool SaveAlert(Alert newAlert) 
{ 
    var filePath = @"C:\Users\korben\Documents\Visual Studio 2017\Projects\SaveFiles\SaveFiles\json\alerts.json"; 
    string Json = File.ReadAllText(filePath); 
    dynamic contourManifest = JObject.Parse(Json); 
    foreach (var Alerts in contourManifest.features) 
    { 
     Alerts.Name.Replace(JObject.FromObject(new { Name = Alerts.Name["SANG"] })); 
    } 

    var newJson = contourManifest.ToString(); 

// Missing a closing brace here? 

public Alert GetAlert(int alertId) 
{ 
    List<Alert> alerts; 
    // Lire le fichier JSON 
    alerts = ReadFile(); 
    // Rechercher l'alerte demandé via sont ID 
    var myAlert = alerts.Where(a => a.Id == alertId).FirstOrDefault(); 
    return myAlert; 
} 

} } // <-- ? 

public void CreateALert(List<AlertObject> alerts) 
{ 
     var filePath = @"C:\Users\korben\Documents\Visual Studio    2017\Projects\SaveFiles\SaveFiles\json\alerts.json"; 
     string json = JsonConvert.SerializeObject(alerts, Formatting.Indented); 
     File.WriteAllText(filePath, json); 
} 
} // <-- ? 

これは私のコードではなく、作成、GetAlertのすべての機能です。削除して savealert(値を変更)が機能せず、理由を理解できません。 ここでプログラムです:

static void Main(string[] args) 
{ 
     int count = 0; 
     var myAlert = new List<Alert>(); 
     var myAlertObject = new List<AlertObject>(); 
     AlertObject oAlertObject = new AlertObject(); 
     var newAlert = new Alert 
     { 
      Name = "RoseDeal", 
      Description = "Problème au sein de Rosedeal", 
      StartDate = new DateTime(2017, 7, 17), 
      EndDate = new DateTime(2008, 7, 19), 
      Niveau = "Urgent", 
      Type = "Girophare", 
      Id = ++count, 
     }; 

     oAlertObject.OAlert = newAlert; 
     myAlertObject.Add(oAlertObject); 
     Console.WriteLine("Hello World!"); 
     JsonAlert rene = new JsonAlert(); 
     rene.CreateALert(myAlertObject); 
     rene.GetAlert(1); 
     //rene.SaveAlert(newAlert); 
     rene.DeleleAlert(1); 
} 
} // <-- ? 
+0

'Alert'と' AlertObject'のためのクラス定義は何ですか?また、 'Delete'と' SaveAlert'が動作しないと言ったときに、 "それはどういう意味ですか?例外はありますか?何もしませんか?言い換えれば、あなたはそれが何をすることを期待していますか、それは実際に何をしているのですか(あるいはしていないのでしょうか)。 –

+1

私はあなたのコードを再フォーマットしようとしましたが、あなたのブレースは一直線に並んでいません。 [mcve]を投稿してください。 – nvoigt

答えて

0

あなたはこのようにそれを扱うことができます。

public class Alert //This is each alert 
{ 
    public string Name; 
    public string Decription; 
    ... 
} 

public class Alerts //This is group of all alert 
{ 
    public List<Alert> Alert; 

    public Alerts() 
    { 
     Alert = new List<Alert>(); 
    } 
} 

public class Program 
{   
    public static Alerts LoadAlertsFromJson() //With this you can load alerts to other classes with Program.LoadAlertsFromJson(); 
    { 
     string jsonString = loadYourStringHere; 
     Alerts a = JsonUtility.FromJson<Alerts>(jsonString); 
     return a; 
    } 

    public static void AddAlert(Alert alert) 
    { 
     Alerts alerts = LoadAlertsFromJson(); 
     alerts.Add(alert); 
     SaveAlerts(alerts); 
    } 

    public static void SaveAlerts(Alerts alerts) 
    { 
     string jsonString = JsonUtility.ToJson(alerts); 
     //write this string to your file 
    } 
} 
関連する問題