【问题标题】:was not able to parse JSON in C#无法在 C# 中解析 JSON
【发布时间】:2016-07-22 05:04:54
【问题描述】:

我的 JSON 如下所示,我无法解析它。不知道如何查看 foreach 中的内容...

我的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":"heoaxcvdcbk7@gmail.com","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":"fghfgh@gmail.com","ExternalDataReference":null,"Unsubscribed":"0","EmbeddedData":{"Participant ID":"29377","DateTaken":"20160711","TriggerResponseID":"R_z14mwG7l7DBCYg1","TriggerSurveyID":"SV_eA35TXE0iRlexBX","AllEmailsSchduledForSurvey2":"yes"}}]

我的课程如下,请帮忙

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; }
}

【问题讨论】:

  • 根据您的类定义,它也应该是 JSON 中的 Participant_ID,而名称“Participant ID”中有一个空格
  • 请在未来更加努力地格式化您的代码,并提供minimal reproducible example - 我们不需要所有这些属性来发现问题,我怀疑在减少您的实际代码/data 到minimal reproducible example 你很可能自己发现了问题。
  • 是的,没错,但在我去那里之前,它不允许我访问来自 result.content 的数据 .. 不知道如何遍历从 result.content 获得的 JSON。请帮忙

标签: c# json restsharp


【解决方案1】:

请尝试

 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
    }


 }

【讨论】:

  • 嗨 Muhammad Usman,即使我使用了它周围的数据合约属性,参与者 ID 仍然显示为空。有什么建议吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-07-07
  • 2013-11-28
  • 1970-01-01
  • 2020-11-04
  • 2019-11-11
  • 2013-08-11
  • 1970-01-01
相关资源
最近更新 更多