尝试将 SoapObject 属性 名称提取为字符串

Trying to extract SoapObject property name as string

我正在尝试将 SoapObject 属性 的名称放入字符串中。 SoapObject 对象:

anyType{ChassisReceiving=true;
JobOrderIssuing=true; 
MfgOrderReducing=true; 
PartsOrdering=true; 
PhysicalInventoryTaking=true; 
PurchaseOrderReceiving=true; 
SalesOrderReducing=true; }

这是意料之中的。但是,我试图只获取 属性 名称(即 ChassisReceiving、JobOrderIssuing 等)。 我正在尝试使用:String name = response.getProperty(i).toString(); 但是 mod 返回为 true。 完整代码:

SoapObject response = (SoapObject) webService.getResponse();
                for (int i=0; i <= response.getPropertyCount()-1; i++) {
                    boolean modAllowed = Boolean.parseBoolean(response.getProperty(i).toString());
                    if (modAllowed) {
                        String mod = response.getProperty(i).toString();
                        switch (mod) {
                            case "ChassisReceiving":
                                mod = "Chassis Receiving";
                                break;
                            case "JobOrderIssuing":
                                mod = "Job Order Issuing";
                                break;
                            //add case for each property name
                        }
                        AddModule(response, mod);
                    }
                }

到目前为止,我没有尝试过 mod 返回 true 以外的结果。 有什么想法吗?

谢谢!

我觉得自己很蠢。从这里开始工作:Android KSoap2: how to get property name

基本添加:PropertyInfo propertyInfo = new PropertyInfo(); 然后在for循环中:response.getPropertyInfo(i, propertyInfo); String mod = propertyInfo.getName();

按预期工作。

你的答案:

在循环响应的地方,您可以从不同的属性访问 PropertyInfo。我使用以下设置来获取参数的名称和它们附带的值:

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

这将创建一个 PropertyInfo 对象,将来自 属性 的信息添加到该对象中,然后您可以访问所有这些信息。然后按以下格式将其打印到您的 LogCat。

<PropertyName> : <PropertyValue>