c# JsonConvert.DeserializeObject возвращает null с допустимым файлом json



У меня есть следующая функция:



[HttpPost]
[Route("api/post")]
public void AddFavourite([FromBody]int id) {

var data = GetData(id);
var list = JsonConvert.DeserializeObject<List<VehicleDetail>>(@"C:FleetStudiofavVehicle.json");
list.Add(data);
var convertedJson = JsonConvert.SerializeObject(list, Formatting.Indented);
}


Однако мой список равен null и возвращает следующую ошибку:




Newtonsoft.формат JSON.JsonReaderException: 'обнаружен неожиданный символ
при разборе значения: "путь", строка 0, позиция 0.'




Мои данные.json выглядит следующим образом (и проходит тест на https://jsonlint.com/)



[
{
"Name": "mocksson",
"Id": 32,
"Alarm": null,
"Signalinfo": null,
"Position": null
}
]


И мой класс VehicleDetail выглядит следующим образом:



 public class VehicleDetailsClass
{
public string Name { get; set; }
public int Id { get; set; }
public List<Alarms> Alarm { get; set; }
public List<SignalInfo> Signalinfo { get; set; }
public Position Position { get; set; }
}


Я никоим образом не вижу, как список может быть пустым. В этой строке кода нет ничего интересного, и он все равно умудряется рухнуть. Кто-нибудь видит, где все идет не так?

924   1  

1 ответ:

Используйте File.ReadAllText для чтения вашего jsonData файла на диске, затем передайте параметр jsonData be в JsonConvert.DeserializeObject

JsonConvert.DeserializeObject метод анализирует строку json вместо filePath.

 string jsonDATA = File.ReadAllText(@"C:\FleetStudio\favVehicle.json")
 var list = JsonConvert.DeserializeObject<List<VehicleDetail>>(jsonDATA);

Comments

    Ничего не найдено.