【问题标题】:Trying to extract SoapObject property name as string尝试将 SoapObject 属性名称提取为字符串
【发布时间】:2021-10-08 21:55:38
【问题描述】:

我正在尝试将 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();modtrue 的形式返回。 完整代码:

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 以外的形式返回。 有什么想法吗?

谢谢!

【问题讨论】:

    标签: java android soap


    【解决方案1】:

    你的答案:https://stackoverflow.com/a/6908752/8357735

    在您循环响应的地方,您可以从不同的属性访问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>
    

    【讨论】:

      【解决方案2】:

      我觉得自己很愚蠢。得到它的工作:Android KSoap2: how to get property name

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

      按预期工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-11-05
        • 1970-01-01
        • 1970-01-01
        • 2014-03-06
        • 2023-03-13
        • 1970-01-01
        • 2011-09-30
        相关资源
        最近更新 更多