Hallo,
ich arbeite gerade an einem kleinen Projekt in Verbindung mit meinem Receiver (Yamaha), genauer gesagt mit der Steuerung des Geräts über das Netzwerk.
Dazu müsste ich Antworten des Servers wie in den folgenden Beispielen zu sehen auswerten bzw. in einer Datenstruktur speichern. Das Problem ist nur, dass nicht nicht weiss, was für eine Aufzählungsklasse hierfür am besten geignet ist. List geht z.B. nicht, weil der Wert eines Datenfeldes einen konkreten Wert (i.A. string) erhalten kann oder aber wiederum eine Aufzählung. Wie würdet Ihr da herangehen? Ein dataset scheint mir für diesen Zweck doch überdimensioniert zu sein, und auch da muss ich mich pro Feld ja auf einen Typen festlegen? Vielleicht gibt es auch schon fertige Bibliotheken für diesen Zweck, ich finde trotz intensivem Suchen im Netz nur nichts. Aber vielleicht benutze ich auch die falschen Suchbegriffe.
Hier die Beispiele:
{
"response_code":0,
"band":"dab",
"auto_scan":false,
"fm":{
"preset":0,
"freq":98100,
"tuned":false,
"audio_mode":"mono"
},
"rds":{
"program_type":"",
"program_service":"",
"radio_text_a":"",
"radio_text_b":""
},
"dab":{
"preset":0,
"id":210,
"status":"ready",
"freq":208064,
"category":"primary",
"audio_mode":"stereo",
"bit_rate":72,
"quality":100,
"tune_aid":100,
"off_air":false,
"dab_plus":true,
"program_type":"Pop",
"ch_label":" 9D",
"service_label":"SWR Aktuell ",
"dls":"SWR Aktuell Mondial",
"ensemble_label":"SWR BW N "
}
}
oder
{
"response_code":0,
"input":"server",
"menu_layer":5,
"max_line":8,
"index":0,
"playing_index":-1,
"menu_name":"The Original Soundtrack",
"list_info":[
{
"text":"Une Nuit A Paris",
"subtexts":[],
"thumbnail":"http:\/\/192.168.178.207:8200\/AlbumArt\/17986-22776.jpg",
"attribute":125829140
},
{
"text":"I'm Not In Love",
"subtexts":[],
"thumbnail":"http:\/\/192.168.178.207:8200\/AlbumArt\/17987-22780.jpg",
"attribute":125829140
},
{
"text":"The Film Of My Love",
"subtexts":[],
"thumbnail":"http:\/\/192.168.178.207:8200\/AlbumArt\/17993-22786.jpg",
"attribute":125829140
}
]
}
Die Zeilenumbrüche habe ich zum Zwecke der Übersichtlichkeit eingefügt, das kommt natürlich alles an einem Stück vom Server.
Vielen Dank, falls mir jemand helfen kann!
Gruß Thomas
Das ist einfach nur ein Json.
NuGet: Newtonsoft.Json
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
@tkluge: Du kannst Dir mittels http://json2csharp.com/ die Klassen aus dem JSON erzeugen lassen. Erspart ggf. noch Schreibarbeit.
Das kann auch Visual Studio direkt > "Paste as Classes"
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Servicepost.
LaTino 😉
"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)
Man sollte wohl ab und zu mal die Menüs von Visual Studio durchschauen 🙂
Wieder was gelernt 8)
Obwohl ich https://jsonutils.com noch lieber mag, denn dort kann man sich auch gleich die JsonProperty
Attribute dranklatschen lassen. 😁
Vielen Dank für eure Hinweise! Genau das hatte ich gesucht (und leider nicht selbst gefunden).