Как десериализовать строки Drupal JSON Services в Android? - PullRequest
1 голос
/ 30 ноября 2010

Я использую Drupal Services вместе с модулем JSON Services в качестве источника данных.

Я использую библиотеку DrupalCloud, https://github.com/skyred/DrupalCloud/wiki,, и мне интересно, как лучше всего обработать результаты, полученные от вызова userLogin ().

Если сам вызов не удался, мы получаем:

{
  "#error": true,
  "#message": "Some message"
}

Если вызов успешен, но учетные данные неверны:

{
  "#error": false,
  "#data": {
    "#error": true,
    "#message": "Some message"
  }
}

Если успешный вызов и учетные данные для входа верны, возвращается:

{
  "#error": false,
  "#data": {
    "sessid": "foo",
    "user": {
      "uid": "69",
      "name": "Russell Jones",
      "pass": "bar",
      "mail": "russell@test.net",
      "roles": {
        "2": "authenticated user",
        "5": "Student"
      },
    }
  }
}

Как мне использовать эти данные осмысленно? Или, скорее, как мне проверить, сработал ли вызов, и был ли вход успешным или нет.

Ответы [ 2 ]

1 голос
/ 30 ноября 2010

Вы искали старые сообщения? Мне нравится этот пост от 2 часов назад: как преобразовать объект json в объект класса или: Разбор JSON в Android

Или просто поиск для себя: Поиск: Android + Json Должен дать вам хорошую идею ..

0 голосов
/ 30 ноября 2010

Это один из способов проанализировать последнее сообщение JSON в вашем вопросе:

public void readJsonString(String jsonString) throws JSONException
{
    JSONObject jsonObject = new JSONObject(jsonString);
    boolean error = jsonObject.getBoolean("#error");
    if (!error)
    {
        JSONObject data = jsonObject.getJSONObject("#data");
        String sessionId = data.getString("sessid");
        JSONObject user = data.getJSONObject("user");
        int uid = user.getInt("uid");
        String name = user.getString("name");

        // you get the pattern, same way with the other fields...
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...