【发布时间】:2025-12-10 01:10:02
【问题描述】:
我有一个非常大的 Json 文件(无法共享) 我使用https://quicktype.io/csharp/ 从这个 json 文件生成一个 C# 类
它给了我一个看起来像这样的类:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace QuickType
{
using System;
using System.Collections.Generic;
using System.Globalization;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
public partial class Tem
{
[JsonProperty("Cal")]
public Cal Cal_ { get; set; }
}
public partial class Cal
{
[JsonProperty("Cam")]
public Camera[] Cam_ { get; set; }
[JsonProperty("Dis")]
public Dis[] Dis_ { get; set; }
[JsonProperty("Eye")]
public Eye[] Eye_ { get; set; }
[JsonProperty("Ine")]
public Ine[] Ine_ { get; set; }
[JsonProperty("Metadata")]
public Metadata Metadata_ { get; set; }
[JsonProperty("Tem")]
public Tem Tem_ { get; set; }
}
//...There are a lot more
}
然后它有一些内置的内部类
internal static class Converter
{
public static readonly JsonSerializerSettings Settings = new JsonSerializerSettings
{
MetadataPropertyHandling = MetadataPropertyHandling.Ignore,
DateParseHandling = DateParseHandling.None,
Converters =
{
ShutterConverter.Singleton,
AssignedEyeConverter.Singleton,
LocationConverter.Singleton,
new IsoDateTimeConverter { DateTimeStyles = DateTimeStyles.AssumeUniversal }
},
};
}
不知道如何处理这些
我试图用这种方式反序列化它,但它不起作用,所有的值都是空的
using (StreamReader r = new StreamReader(file path))
{
string json = r.ReadToEnd();
QuickType.Cal test = Newtonsoft.Json.JsonConvert.DeserializeObject<QuickType.Cal>(json);
}
我知道文件路径是正确的,并且json字符串中包含json文件。但我不知道我应该如何从 Json.net 转换为这个 Json 生成的类
谢谢,
【问题讨论】:
-
Json2csharp.com 工作吗?
-
这没有帮助。我仍然为类中的所有数据获取 Null