前提・実現したいこと
JSONをデシリアライズし、JSON中の
faceIdをstringとして。
top,left,width,heightの値をinteger値として取得したいのですが、
'The JSON value could not be converted to FaceFormAPP.FaceDetect. Path: $ | LineNumber: 0 | BytePositionInLine: 1.'
のエラーが出ます。
c#初心者で対応が判らず困っています。宜しくご教授ください。
発生している問題・エラーメッセージ
System.Text.Json.JsonException:
1 場所 System.Text.Json.ThrowHelper.ThrowJsonException_DeserializeUnableToConvertValue(Type propertyType) 2 場所 System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1.OnTryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value) 3 場所 System.Text.Json.Serialization.JsonConverter`1.TryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value) 4 場所 System.Text.Json.Serialization.JsonConverter`1.ReadCore(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state) 5 場所 System.Text.Json.JsonSerializer.ReadCore[TValue](JsonConverter jsonConverter, Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state) 6 場所 System.Text.Json.JsonSerializer.ReadCore[TValue](Utf8JsonReader& reader, Type returnType, JsonSerializerOptions options) 7 場所 System.Text.Json.JsonSerializer.Deserialize[TValue](String json, Type returnType, JsonSerializerOptions options) 8 場所 System.Text.Json.JsonSerializer.Deserialize[TValue](String json, JsonSerializerOptions options) 9 場所 FaceFormAPP.Form1.<MakeAnalysisRequest>d__19.MoveNext() 場所 C:\Azure\FaceForm4+WebCam\FaceFormAPP\Form1.cs:行 186error 10 11```デシリアライズしたいJSONは、
[
{
"faceId":"19f3245b-b8f2-4b4f-89f5-ca",
"faceRectangle":{"top":121,"left":199,"width":190,"height":190},
"recognitionModel":"recognition_03"
}
]
### 該当のクラス宣言コード
public class FaceDetect
{
public string faceId { get; set; }
public FaceRectangle faceRectangle { get; set; }
public string recognitionModel { get; set; }
}
public class FaceRectangle
{
public int top { get; set; }
public int left { get; set; }
public int width { get; set; }
public int height { get; set; }
}
### エラーが発生するコード
//JSONから配列へDesiliarize
FaceDetect FaceDetectRead = new FaceDetect();
//json変数には、デシリアライズしたいJSON文が代入されています。
FaceDetectRead = JsonSerializer.Deserialize<FaceDetect>(json);
###ここに言語名を入力 c# visual studio ### 試したこと 何しろ、c#初めて1週間なので、よろしくお願いいたします。 ### 補足情報(FW/ツールのバージョンなど) Windows10 Visual studio using System.Text.Json;
回答3件
あなたの回答
tips
プレビュー