2016-07-22 8 views
-3

JSONは以下のようなもので、解析できませんでした。はC#でJSONを解析できませんでした

マイrestSharpコードが

var client = new RestClient("https://survey.qualtrics.com//WRAPI/ControlPanel/api.php?API_SELECT=ControlPanel&Version=2.5&Request=getPanel&User=dgfdhfgh&Token=DfghgfhghjUNUGaefghjP&Format=JSON&LibraryID=UR_5cJwNFX8lwFXFwp&PanelID=ML_b8IoBrawfm3MCd7"); 
var request = new RestRequest(Method.GET); 

client.AddHandler("application/json", new JsonDeserializer()); 

var result = client.Execute<List<RootObject>>(request); 

if (result != null && (result.StatusCode == HttpStatusCode.OK)) // It's probably not necessary to test both 
{ 

    foreach (var j in result.Content) 
    { 
     XXXXXXX; 

} 

で、JSONは

[ 
{"RecipientID":"MLRP_1BNnjFoPFgeajfT","FirstName":"Darfghryl","LastName":"Wright","Email":"[email protected]","ExternalDataReference":null,"Unsubscribed":"0","EmbeddedData":{"Participant ID":"16941","DateTaken":"20160710","TriggerResponseID":"R_VKe0amWmZIXcuZ3","TriggerSurveyID":"SV_eA35TXE0iRlexBX","AllEmailsSchduledForSurvey2":"yes"}}, 
{"RecipientID":"MLRP_cCjJTFP6MxpZFhH","FirstName":"fghfgh","LastName":"Henzell","Email":"[email protected]","ExternalDataReference":null,"Unsubscribed":"0","EmbeddedData":{"Participant ID":"29377","DateTaken":"20160711","TriggerResponseID":"R_z14mwG7l7DBCYg1","TriggerSurveyID":"SV_eA35TXE0iRlexBX","AllEmailsSchduledForSurvey2":"yes"}}] 

を以下のとおりであると私のクラスは

を助けてください以下の通りです... foreachの中にコンテンツを見てから行く方法がわかりません
public class EmbeddedData 
{ 
    public string Participant_ID { get; set; } 
    public string DateTaken { get; set; } 
    public string TriggerResponseID { get; set; } 
    public string TriggerSurveyID { get; set; } 
    public string AllEmailsSchduledForSurvey2 { get; set; } 
    public string AllEmailsSchduledForSurvey3 { get; set; } 
} 

public class RootObject 
{ 
    public string RecipientID { get; set; } 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
    public string Email { get; set; } 
    public object ExternalDataReference { get; set; } 
    public string Unsubscribed { get; set; } 
    public List<EmbeddedData> EmbeddedData { get; set; } 
} 
+0

あなたのクラス定義によると、それはJSONのParticipant_IDでなければなりませんが、名前に "Participant ID"という名前のスペースがあります – Ash

+1

今後もあなたのコードを書式化して、[mcve] - 問題を見つけるためにそれらのプロパティをすべて必要とせず、実際のコード/データを[mcve]に減らすことで、自分自身で問題を見つけた可能性があります。 –

+0

はい、それは本当ですが、そこに行く前にresult.contentのデータにアクセスすることはできません.JSONを反復処理する方法はわかりません。result.contentから取得します。助けてください – Bokbob

答えて

0

お試しください

if (result != null && (result.StatusCode == HttpStatusCode.OK)) 
{ 
    // here I made changes 

    RestSharp.Deserializers.JsonDeserializer deserial = new JsonDeserializer(); 

    List<RootObject> content = deserial.Deserialize<List<RootObject>>(result); 

    foreach (var cont in content) 
    { 
     // Do your Stuff 
    } 


} 
+0

こんにちはMuhammad Usman、RestSharpを使用してこれをdeserialiseする方法? – Bokbob

+0

@Bokbob最新の情報を確認してください。 –

+0

Muhammad Usmanありがとうございます。それは今では – Bokbob

関連する問題