如何从文件中正确读取JSON数据?

时间:2020-04-21 14:37:25

标签: asp.net-core-webapi

在简单的Web API中,我正在使用一个控制器,该控制器读取JSON文件,然后必须将内容作为纯JSON字符串返回。但是,一旦读取,后者就会被许多 \ r \“ \ n 弄脏,因此AFAIK无法对其进行直接解析。我真的不知道如何解决这个问题,我尝试了一些愚蠢的.Replace("\r", ""),但无济于事,因为我不知道如何解决"\""。不知道该怎么办。

有人可以帮助我吗?很抱歉,如果有人问过这个问题并在其他地方解决了这个问题,但是我找不到已经解决的问题来解决我的问题。

[Produces("application/json")]
public async Task<string> JsonData()
{
    using var reader = new StreamReader("Mocks\\data.json");
    string fileContent = await reader.ReadToEndAsync();
    fileContent = fileContent.Replace("\r", "").Replace("\n", "").Replace("\"", "\""); // Doesn't do the job

    return fileContent;
}

这是如何给出的:

{\n\r\"name\":\"lloyd\",\n\r\"mydata\":\"somedata\",\n\r\"moredata\"...}

我希望所有格式化内容消失:

{
    "name":"lloyd",
    "mydata":"somedata",
    "moredata": ...
}

1 个答案:

答案 0 :(得分:0)

只需转换为对象并返回它:

[Produces("application/json")]
[HttpGet]
public async Task<Object> JsonData()
{         
    var reader = new StreamReader("data.json");
    string fileContent = await reader.ReadToEndAsync();
    var data = JsonConvert.DeserializeObject(fileContent);
    return data;
}