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; }
}
Я никоим образом не вижу, как список может быть пустым. В этой строке кода нет ничего интересного, и он все равно умудряется рухнуть. Кто-нибудь видит, где все идет не так?
1 ответ:
Используйте
File.ReadAllTextдля чтения вашегоjsonDataфайла на диске, затем передайте параметрjsonDatabe вJsonConvert.DeserializeObject
JsonConvert.DeserializeObjectметод анализирует строкуjsonвместо filePath.string jsonDATA = File.ReadAllText(@"C:\FleetStudio\favVehicle.json") var list = JsonConvert.DeserializeObject<List<VehicleDetail>>(jsonDATA);
Comments