C# - JSON String bearbeiten?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Mit Newtonsoft.Json und SystemLinq geht das z.B.

string input = @"
                {
                  ""badwords"": [""string1"", ""string2""]
                }
            ";

var myObject = Newtonsoft.Json.JsonConvert.DeserializeObject<MyObject>(input);

var wordlist = myObject.Badwords.ToList();

wordlist.Add("string3");
wordlist.Add("string4");

myObject.Badwords = wordlist;

var output = Newtonsoft.Json.JsonConvert.SerializeObject(myObject);

Console.WriteLine(output);

Mit diesem Object:

class MyObject
{
  public IEnumerable<string> Badwords { get; set; }
}
Woher ich das weiß:Berufserfahrung – Senior-Softwaredeveloper mit 20 Jahren Berufserfahrung.
MarcelDerAdmin 
Fragesteller
 18.04.2021, 15:35

Ich werd das mal alles eben ausprobieren

0

Mit Newtonsoft.Json kannst du das Objekt parsen und modifizieren. Lies hier: https://www.newtonsoft.com/json/help/html/ModifyJson.htm.

Ansonsten könntest du dir auch ein Model-Objekt anlegen und das JSON darauf mappen.

Das Model:

class Model
{
  [JsonProperty("badwords"]
  public IList<string> Badwords { get; set; }
}

De-/Serialisierung:

var json = JsonConvert.SerializeObject(new Model());
var model = JsonConvert.DeserializeObject<Model>(json);

Um nun über die GUI neue Werte hinzuzufügen, würde ich bevorzugt nur das Model bearbeiten und erst dann, wenn es wirklich notwendig ist, die Konversion zu JSON vornehmen.

MarcelDerAdmin 
Fragesteller
 18.04.2021, 15:15

Okay und wie könnt ich dann den String der Textbox hinzufügen? Json ist für mich sehr neu

0
regex9  18.04.2021, 15:22
@MarcelDerAdmin

An der Stelle brauchst du kein spezifisches JSON-Wissen. Strings behandelst du so wie Strings.

Vorweg: Ich gehe folgend von Windows Forms aus. Die TextBox hat ein Text-Property, darüber kannst du ihren Inhalt setzen oder einholen. Dem Button ordnest du einen Event Handler für das Klickereignis zu, in diesem kannst du das eingegebene Wort aus der TextBox holen und deinem Model zufügen. Eine Konversion zu JSON würde ich erst vornehmen, sobald wirklich notwendig.

0