Mit JSON Java und C# verbinden

Gachl

Mitglied
Hallo!

Ich versuche gerade ein C# und ein Javaprogramm mittels JSON über Sockets kommunizieren zu lassen. Dafür habe ich in C# und in Java zwei identische Klassen erstellt.

In C# verwende ich den System.Web.Script.Serialization.JavaScriptSerializer (aus der System.Web.Extensions lib) um die Klasse zu de-/serialisieren und in Java verwende ich com.thoughtworks.xstream.XStream und com.thoughtworks.xstream.io.json.JettisonMappedXmlDriver für das Selbe.

Nun hab ich das Problem, dass mit der C# Serializer ein anderes Format ausspuckt als der XStream Parser lesen kann:
C# generiet:
Code:
{"Action":"Login","Parameters":{"Username":"asdf","Password":"wasd"}}
In Java die gleiche Klasse serialisiert sieht aber so aus:
Code:
{"command":{"Action":"Login","Parameters":{"entry":[{"string":["Password","wasd"]},{"string":["Username","asdf"]}]}}}

Die Klasse selbst ist nicht weiter als:
(pseudocode)
Code:
class Command
{
public string Action = "Login";
public KeyValue<String,Object> Parameters = { [ "Username", "asdf" ] , [ "Password", "wasd" ] };
}

In C# ist das KeyValue Object ein Dictionary<string, object> und in Java eine HashMap<String, Object>.

Wie man nun unschwer erkennen kann, kann man dem Java Deserializer die serialisierte C# Klasse nicht füttern, da dieser auf die Nase fällt. Das Problem mit dem {"command":-Teil hab ich gelöst, indem ich ihn einfach direkt als String anhänge, so kann der Java Deserializer wenigstens herausfinden um welche Klasse es sich handelt (ist zwar nicht schön, aber es hilft).

Meine Frage ist nun, wie kann ich die beiden JSON Serializer die gleiche Sprache sprechen lassen?
 
Zuletzt bearbeitet:

Geeeee

Bekanntes Mitglied
Von C# hab ich sehr wenig Ahnung und kann somit nur eine Idee für Java aussprechen:
Schau dir mal die json-lib an. Da kommst du dem C# Ergebnis schon etwas näher.
 
T

Tomate_Salat

Gast
Naja, ich habe mal gesucht aber nicht gefunden wonach ich suchte: eine lib für c# und java vom gleichen Entwickler(team). Insofern wirst du wahrscheinlich immer Differenzen haben, die früher oder später probleme machen werden. Also entweder: eigenen JSON-Parser schreiben, der sich verhält wie der von der anderen Sprache, was aber denke ich nicht einfach wird oder gleich 2 Parser schreiben..einen in C# einen in Java.
Oder du verzichtest auf JSON und schreibst dir ein anderes "Protokoll".

Naja, ansonsten. Viel Glück vllt findeste doch noch eine erfreulichere Lösung als die von mir Beschriebene...

MFG

Tomate_Salat
 

eRaaaa

Top Contributor
Also ich würde dir gson empfehlen :)
Damit solltest du auch direkt keine Probleme haben, der schluckt deinen C# String!
Java:
		Gson gson = new Gson();
		String jsonString = "{\"Action\":\"Login\",\"Parameters\":{\"Username\":\"asdf\",\"Password\":\"wasd\"}}";
		Command command = gson.fromJson(jsonString, Command.class);
		System.out.println(command);
		// Command [action=Login, paramter={Username=asdf, Password=wasd}]
		System.out.println(gson.toJson(command));
		// {"Action":"Login","Parameters":{"Username":"asdf","Password":"wasd"}}

class Command {
	private String Action;
	private Map<String, String> Parameters;
	
	@Override
	public String toString() {
		return "Command [action=" + Action + ", paramter=" + Parameters + "]";
	}
}

Ansonsten bietet dir gson viel Spielraum, du kannst eigene InstanceCreator,Deserialisierer,TypeAdapter schreiben!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Java REST Client + Json XML & JSON 8
J JSON zu Java mit der GSON Google API XML & JSON 0
Q Konvertierung von json zum Java Objekt nach vorgegebenem Schema XML & JSON 3
B Json Objekt sinnvoll plätten? XML & JSON 1
W com.android.volley.ParseError: org.json.JSONException: End of input at character 0 of XML & JSON 6
L JSON auslesen und Labels in GUI verwenden XML & JSON 13
mananana Frage zu JSON XML & JSON 3
wofus JSON filtern nach bestimmten Wert XML & JSON 7
N JSON export String Unicode? XML & JSON 6
L Json reader XML & JSON 15
megusta JSON umschreiben (converter)? XML & JSON 4
P verschachteltes json verändern XML & JSON 3
Avalon JSON flatten und wieder in DTO konvertieren XML & JSON 21
M Objekt zu jsonArray in .json datei hinzufügen ? XML & JSON 3
Z json inkl. Array/Verschachtelung erstellen XML & JSON 2
J Object in JSON Datei einlesen und als neues Object erzeugen (in ein Object Array) XML & JSON 29
Trèfle Formatierung v. JSON File XML & JSON 7
M json page 2 auslesen XML & JSON 1
K JSON mit GSON nutzen XML & JSON 4
W Search Value in Json XML & JSON 6
K JSON-Bibliothek XML & JSON 5
M Großes Json Objekt benutzen XML & JSON 5
M Json auslesen XML & JSON 7
M Xml oder Json? XML & JSON 15
G Jackson JSON: Dynamische Serialisierung XML & JSON 6
W Json von URL Lesen (mit Gson Library) XML & JSON 3
W Json von URL Lesen XML & JSON 2
L Jackson JSON: Probleme beim einlesen XML & JSON 1
J JSon-Converter gesucht XML & JSON 2
J JSon <-> XML zwecks Validierung XML & JSON 4
M [JSON] Wie Splitten? XML & JSON 14
W jaxws jaxb wsdl Java-Klassen generieren und binding.xml verwenden XML & JSON 1
iman XML Attribute mit JAVA einlesen mit Spring Batch XML & JSON 0
T Tags in XML Datei mit Java erstellen XML & JSON 3
E JAXB und java.nio.file.Path XML & JSON 4
B XML-Daten mit SAX Parser verarbeiten in Java XML & JSON 4
L Lässt sich folgendes so oder so ähnlich mit Java und XML umsetzen XML & JSON 3
K XML Datei erstellen und Daten daraus in Java auslesen XML & JSON 6
L login - Java IOException jaas.config File or Directory not present XML & JSON 1
M Text eines Elements in XML Datei mit JAVA bearbeiten und kompletten Element-Zweig hinzufügen XML & JSON 16
B JAXB - java.util.Locale does not have a no-arg default constructor XML & JSON 2
E JAVA simple.JSONObject cannot be cast to simple.JSONArray XML & JSON 9
P Einheiten in Java XML & JSON 4
T Visualisierung von XML Dateien in einer Java SwingGui XML & JSON 11
A WSDL und Java XML & JSON 5
A XMLRPC für Java XML & JSON 3
S XML auf Java Klassen Mappen XML & JSON 10
N Java XML schreiben funktioniert nicht XML & JSON 1
B aus xsd Java Klassen generieren XML & JSON 3
MiMa Mehrfachvariablen in Java durch XML XML & JSON 4
Q XML-File als Objekt in Java XML & JSON 6
AMStyles XPATH Befehl SVG Java XML & JSON 2
S Wie aktualisiert man den Java-Kode mit FOP1.0? XML & JSON 1
L XSL: Aufruf Java-class XML & JSON 11
N Java Code aus XML Datei generieren XML & JSON 8
GUI-Programmer java.io.File aus .jar beziehen XML & JSON 6
A Unterschiedliche Datenstruktur XML <-> Java mappen XML & JSON 9
R XSD aus Java Klassen erzeugen?? XML & JSON 2
N xsd pattern in java einlesen XML & JSON 6
M java.lang.RuntimeException: Failed to parse document XML & JSON 4
F SOAP in Java XML & JSON 6
Q Atom/RSS-Feed lesen - per XSD zu Java-Code XML & JSON 4
S JAXB 2 und Java Annotationen/Interfaces generieren XML & JSON 3
N Google Wetter XML (nur current_condition) auslesen mit Java XML & JSON 15
F Einlesen von JDBC connection in Java von XML XML & JSON 4
D xsd->java mit Eclipse?! oder wie? XML & JSON 27
M Probleme mit XPath bei Java XML & JSON 5
_dp Java XML Parse error: findet end-tags nicht XML & JSON 10
V JAXB schema 2 java XML & JSON 3
S XJC --> Java-Objects compile Problem XML & JSON 4
K XML Datei in ein Java package „einbinden" XML & JSON 3
H Java - XML - Rekursion - Verwirrung XML & JSON 6
F XML Datei in Java einlesen XML & JSON 4
J XSD > XML > Java XML & JSON 7
F XML mit Java XML & JSON 2
algorismi SVG Datein mit Batik in Java reinladen XML & JSON 3
S Java - Klassen erzeugen aus xsd bzw. wsdl XML & JSON 3
D ID's aus XML Datei rauslesen und in Java ausgeben XML & JSON 7
N value Wert einer XML Datei mit JAVA bearbeiten XML & JSON 21
Mike90 -xlsx Dateien in Java lesen XML & JSON 3
T StAX / SAX => Wie XML Datenstruktur in Java abbilden? XML & JSON 2
H XML plattformunabhängig/Open Source für Java XML & JSON 4
C Java-Imports bei Jaxb XML & JSON 8
slawaweis Problem mit XSLT (wahrscheinlich ein Bug in Java 6) XML & JSON 16
Fadi .classpath(XML) mit Java lesen XML & JSON 2
M Frage zu Erklärung im Online book "Java ist auch eine I XML & JSON 4
M Problem mit FOP in Java Programm XML & JSON 2
H Fop / Java /Fonts XML & JSON 6
H XSL Aufruf via Java mit neuen Fonts XML & JSON 9
T Java Klasse für gegebenes XML erstellen XML & JSON 4
M Xlink in Java-Objekt umwandeln XML & JSON 9
S Jdom+java webstart XML & JSON 4
P Einstieg in XML mit Java XML & JSON 3
G MS-Word Dokument mit Java erstellen XML & JSON 2
N AXIOM mit Java 1.4 XML & JSON 4
J DTD in Java integrieren? XML & JSON 3
L XML Datei in Java angeben Pfad? XML & JSON 3
G Problem mit XML-Schema Validierung mit Java XML & JSON 12
G XML mit JAVA an URL senden (http post) XML & JSON 12
D Java DOM Ausgabe ohne XML header XML & JSON 4

Ähnliche Java Themen

Neue Themen


Oben