如何通过唯一分隔符从服务器获取单独的数据

时间:2016-02-08 21:58:28

标签: android database split server separator

我想询问是否有某种方法可以通过某个独特的分隔符来分割从服务器获取的数据。

以下是一个例子:

我使用AsyncTask将数据发送到服务器,然后使用echo命令将这些数据发送回我的应用程序,并在onPostExecute中将这些数据拆分为所需的结果。

所以,让我们说,我想从服务器数据中获取名称姓氏,因此服务器上的echo命令将如下所示:{{ 1}}

然后在onPostExecute中我会将这些数据拆分为"&" 分隔符,但是当用户写入名称或姓氏时,会出现问题&#34 ;&" 我用于拆分。

如何避免此问题?

2 个答案:

答案 0 :(得分:1)

您需要转义正在使用的字符,以分隔您正在传输的内容中的不同条目[1]。例如: My\&FirstName&MySecondName(在这种情况下\用作转义字符)

但是,你不需要重新发明所有这些东西。您可以使用多种格式传输数据:

  • JS​​ON
  • XML
  • CSV

[1] https://en.wikipedia.org/wiki/Escape_character

答案 1 :(得分:1)

了解如何使用JSON。它可以节省发送数据的生命。 Android使用JSONObject支持本机JSON。

Documentation

它实质上为放置在对象中的信息提供了格式化程序和解析器,然后可以通过关键字访问它们。

写一个json:

class Comment < ActiveRecord::Base
  belongs_to :commentable, polymorphic: true
  belongs_to :author, class_name: 'User'
end

class User < ActiveRecord::Base
  has_many :comments, as: :commentable
  has_many :notes, class_name: 'Comment'
end

class Post < ActiveRecord::Base
  has_many :comments, as: :commentable
end

这将返回一个类似于:

的字符串
public String writeJSON() {
  JSONObject object = new JSONObject();
  try {
    object.put("name", "John");
    object.put("surname", "Doe");
    return object.toString();
  } catch (JSONException e) {
    e.printStackTrace();
    return null;
  }
} 

阅读:

{"name":"John","surname":"Doe"}