Как правильно прочитать JSON данные из файла? - PullRequest
0 голосов
/ 21 апреля 2020

В моем простом веб-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 голосов
/ 22 апреля 2020

Просто преобразовать в объект и вернуть его:

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