ActiveMQ Nachrichten (JSON Objekte) als verschachtelte Dictionaries deserialisieren

Da ich in meiner Masterarbeit mit dem Apache ActiveMQ arbeite, bin ich zwangsläufig mit JSON Objekten konfrontiert.

Um sich von der .net Welt aus damit zu verbinden, setze ich Apache ActiveMQ NMS ein. Hier bekomme ich nun ITextMessages und wollte diese als verschachteltes Dictionary deserialisieren. Dafür Kommt Newtonsoft JSON.NET zum Einsatz. Dies kann aber von Haus aus nicht als verschachteltes Dictionary deserialisieren.

Dafür habe ich nun eine Lösung auf codeplex gefunden:

private Dictionary<string, object> DeserializeToDictionary(string jo)
{
    Dictionary<string, object> values = JsonConvert.DeserializeObject<Dictionary<string, object>>(jo);
    Dictionary<string, object> values2 = new Dictionary<string, object>();
    foreach (KeyValuePair<string, object> d in values)
    {
        if (d.Value.GetType().FullName.Contains("Newtonsoft.Json.Linq.JObject"))
        {
            values2.Add(d.Key, DeserializeToDictionary(d.Value.ToString()));
        }
        else
        {
            values2.Add(d.Key, d.Value);
        }

    }
    return values2;
}

Damit wird nun als Dictionary deserialisiert und ggf. verschachtelte Strukturen gebildet.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.