【问题标题】:Retrieve Class Object from SOAP envelope?从 SOAP 信封中检索类对象?
【发布时间】:2011-02-08 14:37:54
【问题描述】:

我有一个 Web 服务,它从数据库查询中向我返回一个类对象。我知道如何从 soapObject 中检索一个属性,但是该属性包含该对象。因此,例如,如果我使用:

SoapObject resultsRequestSOAP = (SoapObject) envelope.bodyIn;
        Object obj = resultsRequestSOAP.getProperty("return");

对象的整个值是:“Contacts{ id=value, username=value, location=value, date=value}”

问题是:除非我想使用“split”将其分解为字符串,否则我对此无能为力。我需要知道如何使用我可以使用的类型和值将这个对象从信封或 SoapObject 中取出。任何帮助将非常感激。如果需要我可以发布源代码,但我认为对于这么小的问题没有必要。

编辑:当我“观察”SoapObject 时,故障是:该对象有一个名为“return”的属性,然后该属性有一个名为“Contacts”的值。这个值作为 4 个属性,这是我需要的值。希望这会有所帮助。

【问题讨论】:

    标签: java android web-services soap ksoap2


    【解决方案1】:

    听起来 return 是一个嵌套的肥皂对象?我对这个特定的库不是很熟悉,但是这样的东西会起作用吗?

    SoapObject resultsRequestSOAP = (SoapObject) envelope.bodyIn;
    SoapObject returnObj = (SoapObject)resultsRequestSOAP.getProperty("return");
    Integer id = Integer.valueOf(returnObj.getProperty("id");
    String username = (String)returnObj.getProperty("value");
    ...
    

    如果您在某处放置断点,您应该能够检查对象以确定它们的确切类型,从而确定需要进行哪些强制转换。

    【讨论】:

    • 方法:GetProperty(String) 对 Object 类型无效。
    • 您是否像我一样将“返回”对象转换为 SoapObject?我不知道这是否是一个有效的演员阵容,但这似乎是合乎逻辑的。正如我所说,您应该检查对象树以确定这些对象到底是什么,然后您可以将它们转换为适当地使用。
    • 您的总体想法就是解决方案。我不能完全使用该方法。出于某种原因,当我尝试将值直接拉出并将其放入类型变量中时,出现错误:名称“id”无法解析。但是,如果我把它放在另一个对象中,然后使用该对象解析成一个整数,它会很好用。所以,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-13
    • 1970-01-01
    • 2010-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多