私はこのjsonを持っています
{"id":"48e86841-f62c-42c9-ae20-b54ba8c35d6d"}
どうすれば48e86841-f62c-42c9-ae20-b54ba8c35d6d
を取得できますか?私が見つけることができるすべての例は、次のようなことをするショーです
var o = System.Text.Json.JsonSerializer.Deserialize<some-type>(json);
o.id // <- here's the ID!
しかし、この定義に合うタイプがなく、作成したくありません。動的に逆シリアル化しようとしましたが、それを機能させることができませんでした。
var result = System.Text.Json.JsonSerializer.Deserialize<dynamic>(json);
result.id // <-- An exception of type 'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException' occurred in System.Linq.Expressions.dll but was not handled in user code: ''System.Text.Json.JsonElement' does not contain a definition for 'id''
誰かが何か提案を与えることはできますか?
編集:
私はこれを行うことができると思いました:
Guid id = System.Text.Json.JsonDocument.Parse(json).RootElement.GetProperty("id").GetGuid();
これは機能しますが、もっと良い方法はありますか?
.NET Core 3.1に更新してサポートする
public static dynamic FromJson(this string json, JsonSerializerOptions options = null)
{
if (string.IsNullOrEmpty(json))
return null;
try
{
return JsonSerializer.Deserialize<ExpandoObject>(json, options);
}
catch
{
return null;
}
}