Я использую https://quicktype.io/csharp/ для создания класса C# из этого файла JSON
Это дает мне класс, который выглядит следующим образом:
Код: Выделить всё
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(json);
}
Спасибо,
Подробнее здесь: https://stackoverflow.com/questions/578 ... -json-file
Мобильная версия