C# + JSON

  • Hi,


    habe hier eine json Datei bei denen manche Keys / values existieren bei anderen nicht. z.B. Gibt es bei normalen waffen den ammo_type bei melee waffen nicht dafür gibt es z.B. knockback welches bei den anderen nicht gibt.


    Genutzt wird newtonsoft json.


    Im endeffekt sollte für jede Waffe in er Datei eine Klasse erstellt werden die die Werte beinhaltet.


    Hab jetzt schon verschiedenes probiert von simplen JObject.Parse über JsonConvert.PopulateObject oder auch JsonConvert.DeserializeObject. Geben mir alles nur null Werte zurück. Die json Datei ansich ist valide also daran liegt es nicht.


    Habe hier mal 2 beispiele wo Werte / keys ber A existieren dafür bei B nicht und umgekehrt.




    Aufbau der Weapon Klasse. Habe sogar explizit diese als JsonProperty deklariert aber das macht kein Unterschied beim ergebenis.



    Steh da gerade etwas aufen Schlauch

  • Mal so probiert:


    C
    public void LoadJson()
    {
        using (StreamReader r = new StreamReader("file.json"))
        {
            string json = r.ReadToEnd();
            List<Weapon> items = JsonConvert.DeserializeObject<List<Weapon>>(json);
        }
    }

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Gerade mal probiert bekomme da eine Newtonsoft.Json.JsonSerializationException


    Code
    Cannot deserialize the current JSON object (e.g. {"name":"value"}) into type 'System.Collections.Generic.List`1[ConsoleApp1.Weapon]' because the type requires a JSON array (e.g. [1,2,3]) to deserialize correctly.
  • Aso, weil dein JSON String keinArray ist xD


    Ehh, dann so:


    C
    Weapon item = JsonConvert.DeserializeObject<Weapon>(json);

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S