我得到以下回复
{
"url": "https://XXX/plugins/servlet/export/exportAttachment?fileName=Cycle-SPRINT+19.csv"
}
我正在使用这个课程
public class csvBody
{
public string url { get; set; }
}
和以下代码
WebResponse response = (HttpWebResponse) request.GetResponse();
Stream newStream = response.GetResponseStream();
StreamReader sr = new StreamReader(newStream);
String resJson = sr.ReadToEnd();
var dict = JsonConvert.DeserializeObject<Dictionary<string, csvBody>>(resJson);
但是收到以下错误
Newtonsoft.Json.JsonSerializationException:'转换值时出错 “https://xxx/plugins/servlet/export/exportAttachment?fileName=Cycle-SPRINT+19.csv” 输入'ReadCSV.csvBody'。路径'url',第1行,第101位。'
请让我知道反序列化此json响应的正确方法。
答案 0 :(得分:3)
无需创建Dictionary<string, csvBody>
。我使用相同的json字符串测试,以下解决方案将适合您。
您可以使用url
访问dict.url
。
重要的是API只返回CSV文件的路径而不是内容。
static void Main(string[] args)
{
string json = "{ \"url\": \"https://XXX/plugins/servlet/export/exportAttachment?fileName=Cycle-SPRINT+19.csv\" }";
var dict = JsonConvert.DeserializeObject<csvBody>(json);
Console.ReadLine();
}