【问题标题】:How separate data obtained from server by unique separator?如何通过唯一分隔符从服务器获取数据?
【发布时间】:2016-02-08 21:58:28
【问题描述】:

我想问是否有某种方法可以通过一些唯一的分隔符分割从服务器获取的数据。

这是一个例子:

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

假设我想从服务器数据中获取 NameSurname,因此服务器上的 echo 命令将如下所示:echo $name."&".$surname;

然后在 onPostExecute 中,我将通过 "&" 分隔符拆分这些数据,但是当用户写入我的分隔符 "&" 时会出现问题用于拆分。

如何避免这个问题?

【问题讨论】:

    标签: android database split server separator


    【解决方案1】:

    研究使用 JSON。这是发送数据的救命稻草。 Android 使用 JSONObject 支持原生 JSON。

    Documentation

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

    要写一个json:

    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"}
    

    阅读:

    public void readJSON(String jsonString){
        try {
            JSONObject object = new JSONObject(jsonString);
            String name = object.getString("name");
            String surname = object.getString("surname");
        } catch (JSONException e){
            e.printStackTrace();
        }
    }
    

    【讨论】:

    • 谢谢,这正是我要找的。​​span>
    【解决方案2】:

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

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

    • json
    • xml
    • csv

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

    【讨论】:

    • 谢谢你的回答,但我必须接受Helix的。
    猜你喜欢
    • 2016-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-10
    • 1970-01-01
    • 2021-12-10
    • 2023-03-03
    • 1970-01-01
    相关资源
    最近更新 更多