将包含csv文件的json反序列化为响应

时间:2018-05-30 07:57:22

标签: c# json json.net

我得到以下回复

{
    "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响应的正确方法。

1 个答案:

答案 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();
}