0

我正在尝试创建一个简单的 Android 应用程序来从 Web 服务服务器获取数据。我创建了一个包含假天气数据的数据库并配置了 Web 服务当我从 Android 应用程序运行此代码时:

SoapObject results = (SoapObject) envelope.bodyIn;
result = results.getProperty("getAlertsResult").toString();

结果字符串如下。如何从肥皂对象中获取单个警报消息、名称和优先级?谢谢你。

anyType{schema=anyType{element=anyType{complexType=anyType{choice=anyType{element=anyType{complexType=anyType{sequence=anyType{element=anyType{}; 元素=anyType{}; 元素=anyType{}; 元素=anyType{}; 元素=anyType{}; 元素=anyType{}; 元素=anyType{}; 元素=anyType{}; }; }; }; }; }; }; }; diffgram=anyType{NewDataSet=anyType{Table=anyType{ALERT_ID=1; ALERT_TYPE=天气;ALERT_NAME=该地区有严重风暴;ALERT_MSG=这是一个极端危险的情况,龙卷风如预期的风速。; ALERT_PRIORITY=高;ALERT_ENABLED=1;ALERT_USER=管理员;ALERT_DATETIME=2012-07-24T00:00:00-04:00; }; 表=anyType {ALERT_ID=2; ALERT_TYPE=天气;ALERT_NAME=洪水警告;ALERT_MSG=田纳西州莫里斯敦的国家气象局发布了洪水;ALERT_PRIORITY=正常;ALERT_ENABLED=1;ALERT_USER=管理员;ALERT_DATETIME=2012-07-24T00:00:00-04:00; }; 表=anyType{ALERT_ID=3; ALERT_TYPE=地震;ALERT_NAME=7.1 该地区发生地震;ALERT_MSG=美国东部标准时间下午 2:30 在大都会地区登记的严重地震,RS 为 7.1;ALERT_PRIORITY=高;ALERT_ENABLED=1;ALERT_USER=管理员;ALERT_DATETIME=2012-07-24T00:00:00-04:00; }; }; }; }

4

2 回答 2

2

这是获取单个 SoapObject 属性的代码。

SoapObject resultOne = (SoapObject) results.getProperty(0);
SoapObject resultTwo = (SoapObject) resultOne.getProperty(1);
SoapObject allAlerts = (SoapObject) resultTwo.getProperty(0);
SoapObject alertOne = (SoapObject) allAlerts.getProperty(0);
SoapPrimitive alertPriority = (SoapPrimitive) alertOne.getProperty(4);
于 2012-10-04T14:35:16.773 回答
0

您可以做的是进行 php 查询,以检索数据并将其放入 json 格式。json 是一种非常好的跨平台数据共享格式。像这样

<?php

    $response = array();

    require_once __DIR__ . '/db_connect.php';

    $db = new DB_CONNECT();

    $result = mysql_query("SELECT * FROM table_name") or die(mysql_error());

    if (mysql_num_rows($result) > 0) {

        $response["forecasts"] = array();

        while ($row = mysql_fetch_array($result)) {


           //here you put all the rows from the column that you have retrieved 
            $product = array();
            $product["column1"] = $row["column1"];
            $product["column2"] = $row["column2"];

            array_push($response["forecasts"], $product);
        }

        $response["success"] = 1;

        echo json_encode($response);
    } else {

        $response["success"] = 0;
        $response["message"] = "No games found";

        echo json_encode($response);
    }
    ?>

json数据的过程你可以使用gson库,它非常适合将json解析为对象

http://bobbyprabowo.wordpress.com/2010/11/25/android-json-processing-using-gson-and-display-in-on-a-listview/

于 2012-10-03T20:20:36.700 回答