C# 韩元';t映射到复杂类和集合
我有这门课C# 韩元';t映射到复杂类和集合,c#,json,C#,Json,我有这门课 namespace Watermark { public class Template { int Width { get; set; } = 700; int Height { get; set; } = 700; Picture Picture { get; set; } List<Shape> Shape { get; set; } List<Word> Wo
namespace Watermark
{
public class Template
{
int Width { get; set; } = 700;
int Height { get; set; } = 700;
Picture Picture { get; set; }
List<Shape> Shape { get; set; }
List<Word> Word { get; set; }
}
public class Picture
{
int X { get; set; }
int Y { get; set; }
}
public class Shape
{
List<PointF> Point { get; set; }
string Color { get; set; }
}
public class Word
{
string Text { get; set; }
int Width { get; set; }
HorizontalAlignment Alignment { get; set; } = HorizontalAlignment.Center;
string Color { get; set; }
string FontFamily { get; set; }
int Size { get; set; }
FontStyle Style { get; set; } = FontStyle.Regular;
}
}
我尝试将JSON文件映射到我的类
var jsonString = File.ReadAllText("appsettings.json");
var jsonModel = JsonSerializer.Deserialize<Template>(jsonString);
var jsonString=File.ReadAllText(“appsettings.json”);
var jsonModel=JsonSerializer.Deserialize(jsonString);
但是所有的复杂对象都显示为null,我做错了什么
这里有两个问题:
public class RootObject
{
public string FolderPath { get; set; }
public string FolderName { get; set; }
public Template Template { get; set; }
}
并反序列化为该模板,而不是模板
:
var jsonModel = JsonSerializer.Deserialize<RootObject>(jsonString);
var jsonModel=JsonSerializer.Deserialize(jsonString);
Fiddle:您的房产不是公共的。请参阅:.@SomnathGhosh:Picture位于模板内,因为我想映射到属性
Picture
insidetemplate
classPicture Picture{get;set;}
@dbc:公开了所有内容,仍然是同一个问题,我认为这里的问题不是公开的,因为宽度和高度映射得很好;您正在代码中将它们初始化为700。该值恰好与JSON中定义的值匹配。我添加了一个说明如何修复代码的答案。@BrianRogers:天哪,你说得对
var jsonModel = JsonSerializer.Deserialize<RootObject>(jsonString);