-2

私はJsonが初めてで、URLから受け取ったJsonデータを逆シリアル化する必要があります。ユーザーをアプリケーションにログインさせるために提供された API を使用しています。

API:

ログイン中

ログインするには、次の呼び出しを行います

<site>/Users/login/username:<email>/password:<password>.json

• 成功応答

{
  “response”:{
       “sessionId” : “&lt;sessionId>”,
       “businesses” : [{
          “&lt;bizId-1>” : “&lt;bizName-1>”,
          “&lt;bizId-2>” : “&lt;bizName-2>” ,
          “&lt;bizId-n>” : “&lt;bizName-n>”
       }]
  },
  “messages” :{"msgs":"","errs":""}
}

実際の応答の例は次のとおりです。

{
  "response":{
     "sessionId":"50b702d8-78dc-4d65-9de8-2510c327a7be",
     "businesses":[
        {"50c657af0ad8-4ce7-bb08-1d60c327a7be":"All of The Lights"},
        {"50cf705a-ded4-4c7d-95df-51c8c327a7be":"Tomatoes Inc"},
        {"50d2cf88-e664-4103-99f9-1aa0c327a7be":"Joe's Jalepinos"},
        {"50d2d9b9-c358-4129-b9ec-1aa0c327a7be":"Pizza Place"},
        {"50eed93e-f49c-4dff-8c7a-33f0c327a7be":"Samsung"},
        {"51036f10-e9c0-47ecb73d-0f50c327a7be":"Peppers"},
        {"51036fcd-a6b8-4103-8e160f82c327a7be":"Puppy"}
    ]
   },
   "messages":{"msgs":"","errs":""}
}

次のコードがあります。

try
{
   serverUrl = "https://eko-app.com/Users/login/username:" + usernameEntered + "/password:" + passwordEntered + ".json";

   var w = new WebClient();
   var jsonData = string.Empty;

   // make the login api call
   jsonData = w.DownloadString(serverUrl);

   if (!string.IsNullOrEmpty(jsonData))
   {
      var dataResult = Newtonsoft.Json.JsonConvert.DeserializeObject(jsonData);
      // need help here
   }
}
catch (Exception ex)
{
   MessageBox.Show(ex.Message);
}

最初に、応答からセッション ID を取得します。存在する場合、ユーザーはログインを許可されます。セッション ID が null の場合、ログインは拒否されます。どうすればいいですか?

また、ユーザーがログインしたら、ユーザーごとのビジネス数とそれぞれのビジネス ID を示すリストを作成したいと考えています。

どんな助けでも感謝します。

4

2 に答える 2

1

匿名型のプロパティを確認する必要があるだけです。

次のようなものを試してください

if (!string.IsNullOrEmpty(jsonData))
{
  var dataResult = Newtonsoft.Json.JsonConvert.DeserializeObject(jsonData);

  if (dataResult != null && dataResult.response.sessionId != null)
  {
     // logged in
     // iterate and show bussiness list
  } else {
     Console.WriteLine("Login failed");
  }
}

JSON.NET ドキュメントを参照してください - http://james.newtonking.com/json/help/html/DeserializeAnonymousType.htm

于 2013-11-08T10:10:25.520 に答える