如何反序列化值中带有大括号的字符串



我有一个需要反序列化的字符串。

"{"errors":{"validationError":["Custom error message here."]},"title":"One or more validation errors occurred.","status":400}"

这是我的代码,我正在使用XUnit进行测试。

var response = await client.GetAsync("api/ABC/Check?draftId=" + draftId);
var responseString = await response.Content.ReadAsStringAsync();
var result = JsonConvert.DeserializeObject<VerificationResponseError>(responseString);
Assert.Equal("Custom error message here.", result.validationError[0]);

这是我的CCD_ 2类。

public class VerificationResponseError {
public string errors { get; set; }
public List<string> validationError { get; set; }
}

但是,它在中断

var result = JsonConvert.DeserializeObject<VerificationResponseError>(responseString);

听起来你有一个不正确的类,它不是应该是这样的吗?

public class Errors
{
public List<string> validationError { get; set; }
}
public class VerificationResponseError
{
public Errors errors { get; set; }
public string title { get; set; }
public int status { get; set; }
}

您可以使用此工具来验证https://json2csharp.com/

您的类不代表您的json结构。尝试下一个:

public class VerificationResponseError
{
public Errors errors { get; set; }
public string title { get; set; }
public int status { get; set; }
}
public class Errors
{
public List<string> validationError { get; set; }
}
var result = JsonConvert.DeserializeObject<VerificationResponseError>(responseString);

相关内容

  • 没有找到相关文章

最新更新