android中webservce获取soapObject数据的解析问题

问题描述

最近在尝试做个开发,用到网络通讯这块。有几个问题:

1android客户端已经得到weibservice发挥的soapObject对象  但是怎么解析成我需要的数据类型?

通过网页得到的xml文件

<?xml version="1.0" encoding="utf-8" ?>

- <user_info>

<USER_NO>adminbb</USER_NO>

<USER_NAME>admin</USER_NAME>

<PASSWORD>e10adc3949ba59abbe56e057f20f883e</PASSWORD>

<ROLE_ID>732</ROLE_ID>

<TELEPHONE />

<EMAIL />

<REMARK />

<CREATER>admin</CREATER>

<CREATED_TIME>2005/5/8 0:00:00</CREATED_TIME>

<MODIFIER>adminbb</MODIFIER>

<LAST_MODIFIED>2012/2/17 10:01:50</LAST_MODIFIED>

<INI_LON>108.9418</INI_LON>

<INI_LAT>34.2640</INI_LAT>

<LAST_LOGIN_TIME>2012/1/9 14:12:04</LAST_LOGIN_TIME>

<STATUS>1</STATUS>

<DEAD_LINE_TIME>2020/12/31 23:59:59</DEAD_LINE_TIME>

<LAST_LOGIN_IP>36.40.67.173</LAST_LOGIN_IP>

<IS_MANAGER>1</IS_MANAGER>

<GROUP_ID>707</GROUP_ID>

</user_info>

android上面调用该webservice得到的soapObject tostring()后 是下面这个样子

GetNameInfoResponse{GetNameInfoResult=anyType{user_info=anyType{USER_NO=adminbb; USER_NAME=admin; PASSWORD=e10adc3949ba59abbe56e057f20f883e; ROLE_ID=732; TELEPHONE=anyType{}; EMAIL=anyType{}; REMARK=anyType{}; CREATER=admin; CREATED_TIME=2005-5-8 0:00:00; MODIFIER=adminbb; LAST_MODIFIED=2012-2-17 10:01:50; INI_LON=108.9418; INI_LAT=34.2640; LAST_LOGIN_TIME=2012-1-9 14:12:04; STATUS=1; DEAD_LINE_TIME=2020-12-31 23:59:59; LAST_LOGIN_IP=36.40.67.173; IS_MANAGER=1; GROUP_ID=707; }; }; }

能不能向c#一样 直接得到 类似datatable型的数据。

怎么用Ksoap类能得到 标准的xml文件 然后调用android自己的解析库 解析?难道只能用post  get方法调用webservice得到xml?

解决方案1

得到SoapObject对象后循环取里面的每个字段

for(int i=0;i<soapObject.getPropertyCount();i++){

SoapObject soapChilds =(SoapObject)soapObject.getProperty(i);

System.out.println(soapChilds.getProperty("USER_NO").toString());

System.out.println(soapChilds.getProperty("USER_NAME").toString());

.

.

.

}

解决方案2

是的 顶楼上的

你可以一边调试一边看取得的数据是不是对应起来了

解决方案3

如果你是自己开发两端的话,建议用json,速度快,体积小,解析灰常容易!

服务端:result = JsonConvert.SerializeObject(Objcet);//开始序列化

客户端:

GsonBuilder gsonb = new GsonBuilder();

// Json中的日期表达方式没有办法直接转换成我们的Date类型, 因此需要单独注册一个Date的反序列化类.

DateDeserializer ds = new DateDeserializer();

// 给GsonBuilder方法单独指定Date类型的反序列化方法

gsonb.registerTypeAdapter(Date.class, ds);

Type t = new TypeToken<LinkedList<你的数据类型,和web端保持一致的>>() {}.getType();

Gson gson = gsonb.create();

// 将json数据解析成对象

if (!result.equals("-1")) {

//result是你获得的字符串,t是要转换的类型

resultList = gson.fromJson(result, t);

}

解决方案4

引用 2 楼 weicheng_android 的回复:

得到SoapObject对象后循环取里面的每个字段

for(int   i=0;i <soapObject.getPropertyCount();i++){

SoapObject   soapChilds   =(SoapObject)soapObject.getProperty(i);

System.out.println(soapChilds.getPro……

既然用SoapObject,那就用它的标准解法,一层层取,直到取对为止!

时间: 2025-01-02 04:50:45

android中webservce获取soapObject数据的解析问题的相关文章

Java从网络中请求获取JSon数据以及解析JSON数据----(自创,请注明)

Json数据是比较常用的数据类型解析,优点就不多说啦.来看看方法: public static JSONObject getJsonObject(String url) { JSONObject jsonObject = null; try { HttpClient httpClient = new DefaultHttpClient(); HttpGet httpGet = new HttpGet(url); HttpParams httpParams = httpClient.getPara

android通过httpClient请求获取JSON数据并且解析

android通过httpClient请求获取JSON数据并且解析:http://www.cnblogs.com/gzggyy/archive/2013/05/08/3066288.html Android--使用Http向服务器发送请求并取得返回结果,下载图片:http://www.2cto.com/kf/201307/229489.html Android系列之网络(一)----使用HttpClient发送HTTP请求(通过get方法获取数据):http://blog.csdn.net/he

Python 获取接口数据,解析JSON,写入文件

Python 获取接口数据,解析JSON,写入文件 用于练手的例子,从国家气象局接口上获取JSON数据,将它写入文件中,并解析JSON: 总的来说,在代码量上,python代码量要比java少很多.而且python看起来更直观一些: 以下是代码: import types import urllib2 import json duan ="--------------------------" #在控制台断行区别的 #利用urllib2获取网络数据 def registerUrl():

网络获取json数据并解析

1.升级流程分析 2.Android通过URL获取网络资源 JSONObject来解析Json字符串 //创建URL对象 //本机地址用localhost, 但是如果用模拟器加载本机的地址时,可以用ip(10.0.2.2)来替换 URL url=new URL("http://10.0.2.2:8080/update.json"); //第一步是creat HttpURLConnection conn = (HttpURLConnection) url.openConnection()

Android中WebView获取网页中标题 ,内容, 图片的方法

如题,在Android中WebView获取网页中标题 ,内容, 图片的方法 首先是获取标题,在new WebChromeClient(){}中重写onReceivedTitle()方法 @Override public void onReceivedTitle(WebView view, String title) { super.onReceivedTitle(view, title); // loge.e("__页面标题__"+title); } 获取内容,是参考的这边的 http

Android中StatFs获取系统/sdcard存储(剩余空间)大小

package com.orgcent.util; import java.io.File; import android.os.Environment; import android.os.StatFs; public class MemoryStatus { static final int ERROR = -1; /** * 外部存储是否可用 * @return */ static public boolean externalMemoryAvailable() { return andr

Android中突发情况Activity数据的保存和恢复

Android中突发情况Activity数据的保存和恢复 写在前面:在我们的APP使用的过程中,总有可能出现各种手滑.被压在后台.甚至突然被杀死的情况.所以对APP中一些临时数据或关键持久型数据,就需要我们使用正确的方式进行保存或恢复. 突发情况都有哪些? 因为本文讨论的是当一些突发情况的出现时,对数据的保存和恢复.所以现在总结一下突发情况应该都有哪些? 点击back键 点击锁屏键 点击home键 其他APP进入前台 启动了另一个Activity 屏幕方向旋转 APP被Kill 当这些突发情况发

Android逆向之旅---Android中如何获取在非Root设备中获取应用隐私数据

一.前言 今天在开发的过程中遇到一个问题,就是关于AndroidManifest.xml中的allowBackup属性,也算是自己之前对这个属性的不了解,加上IDE的自动生成代码,没太注意这个属性,但是没想到这个属性会直接导致隐私数据的丢失.下面就来看一下这个属性的影响到底有多大.他的作用是什么? 二.Android中的allowBackup属性 1.allowBackup安全风险描述Android API Level 8及其以上Android系统提供了为应用程序数据的备份和恢复功能,此功能的开

Android中图片加载框架Glide解析2----从源码的角度理解Glide的执行流程

转载地址:http://blog.csdn.net/guolin_blog/article/details/53939176 在本系列的上一篇文章中,我们学习了Glide的基本用法,体验了这个图片加载框架的强大功能,以及它非常简便的API.还没有看过上一篇文章的朋友,建议先去阅读 Android图片加载框架最全解析(一),Glide的基本用法 . 在多数情况下,我们想要在界面上加载并展示一张图片只需要一行代码就能实现,如下所示: Glide.with(this).load(url).into(i