[ad_1]
以下はjson文字列です
[ { "attributes": { "TRACKNAME": "A1", "SEGSEQUENCE": 1, "LRS_SEGMENT": "A11", "FROM_CHM": 0.0, "TO_CHM": 3425.13 } }, { "attributes": { "TRACKNAME": "A1", "SEGSEQUENCE": 2, "LRS_SEGMENT": "A12", "FROM_CHM": 3382.14, "TO_CHM": 8022.48 } }, { "attributes": { "TRACKNAME": "A1", "SEGSEQUENCE": 3, "LRS_SEGMENT": "A13", "FROM_CHM": 7980.12, "TO_CHM": 8845.55} }]
以下のような2つのクラスを作成しました。
public class LRSSegment { public string TRACKNAME { get; set;} public int SEGSEQUENCE { get; set; } public string LRS_SEGMENT { get; set; } public double FROM_CHM { get; set; } public double TO_CHM { get; set; } } public class LRSAttribues { public IList<LRSSegment>lrsAttribute { get; set; } }
次に、このコード行を通じて json 文字列を json オブジェクトに変換したいと思います。
LRSAttribues lrsSeg = JsonSerializer.Deserialize<LRSAttribues>(jString); // Got error
ただし、エラーが発生しました。 私のコードの何が間違っているのでしょうか? ご指摘いただければありがとうございます。
私が試したこと:
How to Convert a json string to json object in net6?
解決策 1
引用:エラーが発生しました
そしてあなたは私たちに伝えることが重要だとは思わなかった 何 エラーが発生しましたか?
JSON は、というプロパティを持つ単一のオブジェクトを表します。 features
。 このプロパティにはオブジェクトの配列が含まれており、各オブジェクトには と呼ばれるプロパティが含まれています。 attributes
。 このプロパティには、一致すると思われる単一のオブジェクトが含まれています LRSSegment
クラス。
これを逆シリアル化するには、C# クラスが JSON 構造と一致する必要があります。
C#
public class Root { [JsonProperty("features")] public Feature[] Features { get; set; } } public partial class Feature { [JsonProperty("attributes")] public LRSSegment Attributes { get; set; } }
C#
Root lrsSeg = JsonSerializer.Deserialize<Root>(jString);
迷った場合は、JSON から C# クラスを生成するために使用できるツールがたくさんあります。たとえば、次のようになります。 クイックタイプ.io[^]。
Visual Studio には、「JSON をクラスとして貼り付ける」ための「形式を選択して貼り付け」オプションもあります。
JSON または XML をクラスとして貼り付ける – Visual Studio (Windows) | Microsoft Learn[^]
[ad_2]
コメント