| |||||||
Das Thema "Liste von komplexen Datentypen aus .NET service" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.
|
| | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer Benutzer Registriert seit: 29.12.2011
Beiträge: 12
Abgegebene Danke: 2
Erhielt 0 Danke für 0 Beiträge
| ich probiere gerade eine Liste von komplexen Datentypen von einem .NET Webservice zu empfangen. Wenn ich die Funktion im Browser aufrufe bekomme ich folgendes Ergebnis: <ArrayOfSimpleAuftrag> <SimpleAuftrag> <Id>5</Id> <Nummer>Auftrg001</Nummer> </SimpleAuftrag> <SimpleAuftrag> <Id>6</Id> <Nummer>Auftrg002</Nummer> </SimpleAuftrag> </ArrayOfSimpleAuftrag> diese probiere ich nun auszulesen: Code: SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
SoapObject result = null;
try {
AndroidHttpTransport httpTransport = new AndroidHttpTransport(URL);
httpTransport.debug=true;
httpTransport.call(SOAP_ACTION, envelope);
List<SoapObject> listOfSoapObject = new ArrayList<SoapObject>();
//Vector<SoapObject> vectorOfSoapObject = new Vector<SoapObject>();
try {
listOfSoapObject = (ArrayList<SoapObject>) envelope.getResponse(); // <-- Exception
}
catch(Exception e)
{
Log.e("error", "", e);
}
for (SoapObject soapObject : listOfSoapObject) {
SimpleAuftrag auftrag = convertToAuftrag(soapObject);
listOfAuftraegeTemp.add(auftrag);
} listOfSoapObject = (ArrayList<SoapObject>) envelope.getResponse(); // <-- Exception Message: java.lang.ClassCastException: org.ksoap2.serialization.SoapObject Ich habe es schon mit Vector<SoapObject> probiert auch ohne Erfolg. Kann mir jemand sagen, was ich hier falsch mache ? Danke im Voraus! Ylirebus |
| | |
| | #2 (permalink) |
| Team-Manager Modell: HTC Sensation XE Registriert seit: 12.12.2009
Beiträge: 4.922
Abgegebene Danke: 168
Erhielt 1.538 Danke für 754 Beiträge
|
So eine Frage ist in der Entwicklung besser aufgehoben, deshalb habe ich sie dorthin verschoben.
|
| | |
| | #3 (permalink) |
| Neuer Benutzer Registriert seit: 29.12.2011
Beiträge: 12
Abgegebene Danke: 2
Erhielt 0 Danke für 0 Beiträge
|
Hat jemand sonst ein Beispiel für das Empfangen von komplexen Datentypen mit einem Android ? ![]() Wenn z.B. ein Webservice folgendes Ergebnis liefert: <ArrayOfSimpleAuftrag> <SimpleAuftrag> <Id>5</Id> <Nummer>Auftrg001</Nummer> </SimpleAuftrag> <SimpleAuftrag> <Id>6</Id> <Nummer>Auftrg002</Nummer> </SimpleAuftrag> </ArrayOfSimpleAuftrag> wie bekomme ich das auf meinem Android in eine Klasse public class SimpleAuftrag { public int Id; public string Nummer; } Danke im Voraus Ylirebus Geändert von Ylirebus (13.01.2012 um 10:45 Uhr) |
| | |
| | #4 (permalink) |
| Android Guru Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
|
das ist doch simples xml - warum nimmst nicht einfach einen xml parser ?
__________________ App Entwicklung Latest apps: Media Streamer BETA | DailyCash | MoneyManager ( PRO | HD ) |
| | |
| | #5 (permalink) |
| Neuer Benutzer Registriert seit: 29.12.2011
Beiträge: 12
Abgegebene Danke: 2
Erhielt 0 Danke für 0 Beiträge
|
Das hätte ich als nächstes einfach gemacht, aber ich dachte mir,ich frage mal nach ob es nicht einfacher geht. Danke Ylirebus |
| | |
| | #6 (permalink) |
| Android Guru Modell: T-Mobile G1, Nexus One, Samsung Galaxy Tab 10.1, Samsung Galaxy Nexus Registriert seit: 04.05.2009
Beiträge: 1.599
Abgegebene Danke: 128
Erhielt 210 Danke für 193 Beiträge
|
Debug doch einfach mal da rein und guck was für ein Objekt bei getResponse() rauskommt...
__________________ Follow/Add/Circle/Whatever me on Google+ Solitaire HD, ein Solitaire optimiert für Honeycomb. |
| | |
| | #7 (permalink) |
| Neuer Benutzer Registriert seit: 29.12.2011
Beiträge: 12
Abgegebene Danke: 2
Erhielt 0 Danke für 0 Beiträge
|
Hallo zusammen, Also ich muss erstmal gestehen, das ich bis vor einer Woch eher .NET Anwendungen geschrieben habe aber vor einiger Zeit schon mal die ein oder andere kleine Java-Anwendung geschrieben habe. ich habe mal das "getResponse()" nur einem "SoapObject" zugewiese. Wenn ich mir den result anschaue, habe ich folgendes: anyType{SimpleAuftrag=anyType{Id=5; Nummer=Auftrg001; Referenz=Ref001; ProjektnummerFakturierung=prj001; Uebertragen=false; SachbearbeiterKunde=1; SachbearbeiterSelbst=1; }; SimpleAuftrag=anyType{Id=6; Nummer=Auftrg002; Referenz=Ref002; ProjektnummerFakturierung=prj002; Uebertragen=false; SachbearbeiterKunde=3; SachbearbeiterSelbst=1; }; } Aus dem Bauch raus würde ich sagen das müsste mann doch in eine List<SimpleAuftrag> konvertieren können. Code: List<SimpleAuftrag> auftraege = (List<SimpleAuftrag>)result; Fehler: java.lang.ClassCastException: org.ksoap2.serialization.SoapObject Muss ich die Klasse evtl. anders gestalten? public class SimpleAuftrag { public String Id; public String Nummer; public String Reference; public String SachbearbeiterKunde; public String SachbearbeiterSelbst; public String ProjektnummerFakturierung; public String Uebertragen; } Vielen Dank für Eure Hilfe P.S. Ich habe oben die Klasse ein wenig kleiner gestaltet, das Prinzip ist ja gleich. Die Klasse hat eigendlich mehr Parameter wie hier. Ylirebus Geändert von Ylirebus (14.01.2012 um 04:51 Uhr) |
| | |
| | #8 (permalink) |
| Android Guru Modell: T-Mobile G1, Nexus One, Samsung Galaxy Tab 10.1, Samsung Galaxy Nexus Registriert seit: 04.05.2009
Beiträge: 1.599
Abgegebene Danke: 128
Erhielt 210 Danke für 193 Beiträge
|
result ist halt ein SoapObject und keine Liste... dann kannst du das nicht so umcasten. Dir fehlt auch das Mapping komplett: http://ksoap2.sourceforge.net/doc/ap...va.lang.String, java.lang.String, java.lang.Class) Woher soll ksoap wissen was er daraus machen muss?
__________________ Follow/Add/Circle/Whatever me on Google+ Solitaire HD, ein Solitaire optimiert für Honeycomb. Geändert von the_alien (14.01.2012 um 15:53 Uhr) |
| | |
![]() |
|
| Themen-Optionen | |
| Ansicht | |
| |
| ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Keine apps aus dem i-net | androidkürbis | Sony Ericsson Xperia X10 Mini / Mini Pro | 6 | 30.10.2011 09:35 |
| Liste mit Service-Codes | MarcoHD | HTC Desire HD Forum | 20 | 25.10.2011 00:24 |
| Service aus Service (BroadcastReceiver) starten | andi86 | Android App Entwicklung | 14 | 17.02.2011 06:52 |
| Flash ruckelfrei auf komplexen Seiten? | dermanolo | Archos 101 Forum | 14 | 30.12.2010 14:23 |
| Check TTS von Service aus | FelixL | Android App Entwicklung | 5 | 17.06.2010 18:09 |