Laden...

Antwort-String eines Servers zerlegen und speichern

Erstellt von tkluge vor 6 Jahren Letzter Beitrag vor 6 Jahren 2.318 Views
T
tkluge Themenstarter:in
12 Beiträge seit 2006
vor 6 Jahren
Antwort-String eines Servers zerlegen und speichern

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

16.827 Beiträge seit 2008
vor 6 Jahren

Das ist einfach nur ein Json.
NuGet: Newtonsoft.Json

H
523 Beiträge seit 2008
vor 6 Jahren

@tkluge: Du kannst Dir mittels http://json2csharp.com/ die Klassen aus dem JSON erzeugen lassen. Erspart ggf. noch Schreibarbeit.

16.827 Beiträge seit 2008
vor 6 Jahren

Das kann auch Visual Studio direkt > "Paste as Classes"

3.003 Beiträge seit 2006
vor 6 Jahren

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)

H
523 Beiträge seit 2008
vor 6 Jahren

Man sollte wohl ab und zu mal die Menüs von Visual Studio durchschauen 🙂

Wieder was gelernt 8)

D
985 Beiträge seit 2014
vor 6 Jahren

Obwohl ich https://jsonutils.com noch lieber mag, denn dort kann man sich auch gleich die JsonProperty Attribute dranklatschen lassen. 😁

T
tkluge Themenstarter:in
12 Beiträge seit 2006
vor 6 Jahren

Vielen Dank für eure Hinweise! Genau das hatte ich gesucht (und leider nicht selbst gefunden).

H
523 Beiträge seit 2008
vor 6 Jahren

Obwohl ich
>
noch lieber mag, denn dort kann man sich auch gleich die JsonProperty Attribute dranklatschen lassen. 😄

Super, die Seite kann das auch für Java. Perfekt für native Android-Entwicklung 😃
Direkt mal bookmarken.