2017-02-23 9 views
0

私は仕事中のサイドプロジェクトに取り組んでいます(私は開発者ではありません)。C#でJSON文字列を解析して検証する

私は何を達成しようとしていることstatusNULLであるか、私は、プロセスを継続する可能性がある場合、私は知ることができるので、それがログイン要求応答にERRを持っているかどうかを検証しています。

これは私がこれまで持っているコードです:

namespace EseyeSIMAPI 
{ 
class Program 
{ 
    static void Main(string[] args) 
    { 
     var client = new RestClient("https://siam.eseye.com/Japi/Tigrillo"); 
     var loginRequest = new RestRequest("/login/", Method.POST); 

     loginRequest.AddHeader("postman-token", "4e67ed4c-4130-4067-9539-d5ed6b6ad761"); 
     loginRequest.AddHeader("cache-control", "no-cache"); 
     loginRequest.AddHeader("content-type", "application/json"); 
     loginRequest.AddParameter("application/json", "{\r\n\"username\" : \"someusername\" ,\r\n\"password\" : \"somepassword\" ,\r\n\"portfolioID\" : \"someportfolioid\"\r\n}", ParameterType.RequestBody); 

     IRestResponse response = client.Execute(loginRequest); 

     client.ExecuteAsync(loginRequest, x => 
     { 
      var json = x.Content; 
     }); 

     Console.ReadLine(); 
    } 
} 
public class LoginStatus 
{ 
    public Status status { get; set; } 
    public string cookie { get; set; } 
    public string permissions { get; set; } 
    public string canActivate { get; set; } 
} 

public class Status 
{ 
    public string errorCode { get; set; } 
    public string errorMessage { get; set; } 
    public string status { get; set; } 
} 
} 

は、私は次のようなJSONレスポンスを受信します。

{ 
"status": { 
"errorCode": "", 
"errorMessage": "", 
"status": "OK" 
}, 
"cookie": "2p255ju6q1lfql594uppnq9lp2", 
"permissions": "ULE", 
"canActivate": "yes" 
} 

だから私は、JSONオブジェクト内のすべての応答パラメータを処理するクラスを作成しました。私はどのくらい正確にstatusにアクセスするか分からない。

+0

ですから '・シリアライズを解除したいx.Conent'' LoginStatus'がいることを正しいとします? – musefan

+0

もしそうなら、[この質問](http://stackoverflow.com/questions/4611031/convert-json-string-to-c-sharp-object)は適当な答えを持っているようです。 – musefan

+0

@musefan yep。私は各キーと値のペアにアクセスできるようにしたい。 –

答えて

2

私のコメントに続き、これはあなたが、具体的JavaScriptSerializer classを使用してコードでそれを行うだろうかです:

client.ExecuteAsync(loginRequest, x => 
{ 
    var json = x.Content; 

    JavaScriptSerializer jsonSerializer = new JavaScriptSerializer(); 
    LoginStatus loginStatus = jsonSerializer.Deserialize<LoginStatus>(json); 

    string errorCode = loginStatus.status.errorCode; 
}); 
+0

次のエラーが表示されます。 'System.Collections.Generic.Dictionary'2 [System.String、System.Object]のタイプのオブジェクトをキャストして' EseyeSIMAPI 'と入力できません。 LoginStatus '。 –

+0

@ KobbiGal:申し訳ありませんが、私は分でテストする能力がありません。あなたは私の更新された答えを試すことができます – musefan

+0

エラー\t CS0308 \t非ジェネリックメソッド 'JavaScriptSerializer.DeserializeObject(string)'は型引数で使用できません。 –