如何从Android中的KSOAP Web服务检索对象数组?

时间:2022-10-16 13:22:03

If I am trying to retrieve first array using (String) response.getProperty(0); but it was returning me a full string.

如果我试图使用(String)response.getProperty(0)检索第一个数组;但它正在给我一个完整的字符串。

**Here is the code of webservice calling**

public static Object getResponse(String methodName, String actionName, LinkedHashMap<String, String> valueStrings)
{
    SoapObject soapObject = new SoapObject(LetUsClickAPIConstants.COMMON_NAMESPACE, methodName);
    Object response = null;
    for (Map.Entry<String, String> mapKeys : valueStrings.entrySet())
    {
        soapObject.addProperty(mapKeys.getKey(), mapKeys.getValue());
    }
    final SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
    envelope.dotNet = false;
    envelope.setOutputSoapObject(soapObject);
    final AndroidHttpTransport androidHttpTransport = new AndroidHttpTransport(LetUsClickAPIConstants.COMMON_URL);
    try
    {
        androidHttpTransport.call(actionName, envelope);
        response = envelope.getResponse();
        Log.d("Response ", response.toString());
    } catch (final IOException e)
    {
        Log.d("Exception", "" + e);
    } catch (final XmlPullParserException e)
    {

        Log.d("Exception", "" + e);
    }
    return response;

}

I got an response in Vector type

我在Vector类型中得到了回复

[Client{UserId=93; nickName=ladies; }, Client{UserId=94; nickName=ABCD; }]

如何从Android中的KSOAP Web服务检索对象数组?

I have tried many ways but I am not success to retrieve in any way?

我尝试了很多方法但是我不能以任何方式检索成功吗?

2 个解决方案

#1


0  

Use FolloWing code..

使用FolloWing代码..

Soapresponse = Ksoap.CallService("SOAP_METHOD_NAME);

        try {
            if (Soapresponse != null) {
                SoapObject Soapresult = (SoapObject) Soapresponse
                        .getProperty(0);

                if (Soapresult != null) {
                    SoapObject Dataset = (SoapObject) Soapresult
                            .getProperty(1);
                    if (Dataset != null) {
                        SoapObject Table = (SoapObject) Dataset
                                .getProperty(0);
                        if (Table != null) {
                            UserId= new String[Table.getPropertyCount()];
                            nickName= new String[Table
                                    .getPropertyCount()];

                            for (int i = 0; i < total_News; i++) {
                                SoapObject row = (SoapObject) Table
                                        .getProperty(i);

                                UserId[i] = row.getProperty("UserId")
                                        .toString();
                                nickName[i] = row.getProperty(
                                        "nickName").toString();
                                                                }
                        }
                    }
                }
            }

        } catch (NullPointerException f) {

        } catch (ClassCastException d) {

        }

#2


0  

Parse the string for the parts you want. Using regex or Substring function of String Class.

解析所需部分的字符串。使用String Class的regex或Substring函数。

#1


0  

Use FolloWing code..

使用FolloWing代码..

Soapresponse = Ksoap.CallService("SOAP_METHOD_NAME);

        try {
            if (Soapresponse != null) {
                SoapObject Soapresult = (SoapObject) Soapresponse
                        .getProperty(0);

                if (Soapresult != null) {
                    SoapObject Dataset = (SoapObject) Soapresult
                            .getProperty(1);
                    if (Dataset != null) {
                        SoapObject Table = (SoapObject) Dataset
                                .getProperty(0);
                        if (Table != null) {
                            UserId= new String[Table.getPropertyCount()];
                            nickName= new String[Table
                                    .getPropertyCount()];

                            for (int i = 0; i < total_News; i++) {
                                SoapObject row = (SoapObject) Table
                                        .getProperty(i);

                                UserId[i] = row.getProperty("UserId")
                                        .toString();
                                nickName[i] = row.getProperty(
                                        "nickName").toString();
                                                                }
                        }
                    }
                }
            }

        } catch (NullPointerException f) {

        } catch (ClassCastException d) {

        }

#2


0  

Parse the string for the parts you want. Using regex or Substring function of String Class.

解析所需部分的字符串。使用String Class的regex或Substring函数。