Android KSoap2: как получить имя свойства - PullRequest
6 голосов
/ 27 июня 2011

Я использую KSoap2 для вызова веб-сервисов для моего приложения для Android. Я использую следующий код для вызова веб-сервиса.

SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
request.addProperty("PageSize", 20);
request.addProperty("PageIndex", currentPage);

SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
soapEnvelope.dotNet = true;
soapEnvelope.setOutputSoapObject(request);
HttpTransportSE aht = new HttpTransportSE(URL);

try {
  aht.call(SOAP_ACTION, soapEnvelope);
  SoapObject result = (SoapObject) soapEnvelope.getResponse();

  Log.d("resBundle", String.valueOf(resBundle)); 

  int elementCount = resSoap.getPropertyCount();
  for(int i = 0;i<elementCount;i++){
    /////////////////////how to get the property name here////////////////
  }

}catch (Exception e) {
  e.printStackTrace();
  return null;
}

Я отлично получаю ответ от веб-сервисов. String.valueOf ответа ниже:

anyType{NewsID=2186; NewsSubject=Lil Wayne Shows Up to Heat Game With Mystery Chick & Drake; NewsDetail=Looks like Weezy found him a main chick! Lil Wayne showed off his mystery girl yet again, this time at the Miami Heat Eastern Conference Finals game. Wanye looked proud to be with his girl while he kept his arm around her for most of the game. Drake was also in attendance with Wanye and it looks like he was having a great time cheering on the Heat as they beat the Bulls in overtime. Chad Ochocinco was also spotted enjoying the game, but Evelyn was no where to be seen. Check out more pics from the Miami game:; NewsArtist=494; ModifiedDate=2011-05-26T12:03:04.567+01:00; CreateDate=26 May, 2011 12:03PM; ImageName=26052011120304.jpg; ImageAlt=anyType{}; ShortNewsDetail=Looks like Weezy found him a main chick! Lil Wayne showed off his mystery girl y; }

Теперь я легко могу получить значение свойства, но я также хочу получить свойство name (например, NewsID, NewsSubject, NewsArtist, ModifiedDate). Как я могу получить название объекта?

Ответы [ 2 ]

14 голосов
/ 02 августа 2011

Если вы зацикливаете свой ответ, вы можете получить доступ к PropertyInfo из другого свойства. Я использовал следующую настройку для получения имен параметров и значений, которые идут вместе с ними:

//Inside your for loop
PropertyInfo pi = new PropertyInfo();
resSoap.getPropertyInfo(i, pi);
Log.d(TAG, pi.name + " : " + resSoap.getProperty(i).toString());

Это создает объект PropertyInfo, добавляет информацию из свойства этого объекта, а затем дает вам доступ ко всей этой информации. А затем распечатывает его на свой LogCat в формате off "propertyname: propertyvalue"

0 голосов
/ 18 июля 2018

// Внутри вашего цикла for

SoapObject dataObject;// ваш SoapObject

PropertyInfo property = new PropertyInfo ();

dataObject.getPropertyInfo (i, property);

// это должно дать вам имя свойства

String name = property.getName ();

// счастливое кодирование

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...