【发布时间】:2022-11-29 21:44:15
【问题描述】:
试图从 json 文件中获取数据到产品列表中
试图从 json 文件中获取数据到产品列表中,但出现此错误 InvalidOperationException:无法获取令牌类型 String 的值作为数字。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Text.Json.Serialization;
using System.Text.Json;
using Microsoft.AspNetCore.Hosting;
using DevTest.Website.Models;
<!-- begin snippet: js hide: false console: true babel: false -->
namespace DevTest.Website.Services
{
public class JsonFileProductService
{
public JsonFileProductService(IWebHostEnvironment webHostEnvironment)
{
WebHostEnvironment = webHostEnvironment;
}
public IWebHostEnvironment WebHostEnvironment { get; }
private string JsonFileName => Path.Combine(WebHostEnvironment.WebRootPath, "data", "products.json");
public IEnumerable<Product> GetProducts()
{
using (var jsonFileReader = File.OpenText(JsonFileName))
{
return JsonSerializer.Deserialize<Product[]>(jsonFileReader.ReadToEnd(),
new JsonSerializerOptions
{
PropertyNameCaseInsensitive = true
});
}
}
}
}
【问题讨论】:
-
你能显示你的代码吗?
-
public IEnumerable<Product> GetProducts() { 使用 (var jsonFileReader = File.OpenText(JsonFileName)) { return JsonSerializer.Deserialize<Product[]>(jsonFileReader.ReadToEnd(), new JsonSerializerOptions { PropertyNameCaseInsensitive = true }); } }