私は JSON.net を使用しており、オープンソースの UnitClassLibrary から Distance オブジェクトをシリアライズおよびデシリアライズしようとしています。現在、次の JSON としてシリアル化されたオブジェクトがあります。
{
"ThirtySecondsOfAnInch": 454,
"SixteenthsOfAnInch": 227,
"EighthsOfAnInch": 113.5,
"QuartersOfAnInch": 56.75,
"HalvesOfAnInch": 28.375,
"Inches": 14.1875,
"Feet": 1.1822916666666667,
"Yards": 0.3940972222222222,
"Miles": 0.00022391887626262627,
"Millimeters": 360.36249999999995,
"Centimeters": 36.03625,
"Meters": 0.3603625,
"Kilometers": 0.0003603625,
"Architectural": "1'2 3/16\""
}
これらのいずれかを取得し、このクラスを使用して距離オブジェクトに変換できます。たとえば、最後のアーキテクチャ文字列を使用すると、次のコンストラクターを使用できます。
Distance newDistance = new Distance("1'2 3/16\"");
または、1 インチの 32 分の 1 を使用して、次のことができます。
Distance newDistance = new Distance(DistanceType.ThirtySecond, 454.0);
ただし、JsonConstructor (JSON.net が具体的に使用できるコンストラクターのタイプ) を記述して、JSON 文字列をJsonConvert.DeserializeObject<Distance>(json);
.
新しい距離オブジェクトを取得するコンストラクタを作成するにはどうすればよいですか?