簡體   English   中英

如何在Android中反序列化Drupal JSON Services字符串?

[英]How do I deserialize Drupal JSON Services strings in Android?

我將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小時前: 如何將json對象轉換為類對象,或者: Android中的JSON解析

或只是搜索自己: 搜索:Android + Json應該給你一個好主意。

這是解析問題中最后一條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...
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM