2

在我的应用程序中,我必须将一个大数据集发送回我们的服务器进行处理。我正在使用我ksoap的所有请求从服务器中提取具有正常 xml 属性和属性的内容,但在一次调用中,我必须使用数据集来发送信息。

android 库中是否有任何东西ksoap可以使整个过程更容易?

基本上现在我只是用所有这些标题、标签和一个 shcema 构建这个巨大的字符串

例子:

String header = "<mmAps diffgr:id=\"mmApps"+String.valueOf(count)+"\" msdata:rowOrder=\"0\" diffgr:hasChanges=\"inserted\">\n";
String ecmmaID = "<ECMMAID>"+c.getString(c.getColumnIndex(Apparatus.APP_ECMMAID))+"</ECMMAID>\n";
etc..

String datasetToSend = header+ecmmaID+....;

然后我会让请求传入大字符串

请告诉我有一些更简单的方法可以做到这一点。

也不可能改变数据集,因为它超出了我的控制

4

1 回答 1

2

JSON 是您可以轻松与 KSOAP 一起使用的最佳选择。这将是结构化的,并且比您生成的字符串要好得多。

1. 在 android 和你的服务器(C#.Net、Java 等)中创建相同的 Model 类

// In Android
class MyData {
    String someThing;
    public getSomeThing() {}
    //...
}

2. 使用模型类将该数据集编码为 Android 中的 JSONArray

// Create JSON Objects in loop for entire dataset
JsonObject jo = new JsonObject();
jo.add(myData.getSomthing());
// Add all JSON Objects in JSONArray
JSONArray jArray = new JSONArray();
jArray.add(jo);

3. 使用 KSOAP 将此 JSON 作为字符串发送

String toSendViaKsoap = jArray.toString();

4. 将该字符串从 json 解码为服务器上的模型类列表。

根据您的服务器语言,解码该字符串并在此处以本地语言创建与步骤 1 类似的类的对象,然后做任何您想做的事情。如果你有 .NET 服务器应用程序,有很多免费的库可以对 json 进行解码,包括内置的 json 支持。但我会更喜欢这个

希望这可以帮助..:)

于 2013-04-04T12:24:44.517 回答