J'ai ce json
{"id":"48e86841-f62c-42c9-ae20-b54ba8c35d6d"}
Comment obtenir le 48e86841-f62c-42c9-ae20-b54ba8c35d6d
en dehors de ça? Tous les exemples que je peux trouver montrent faire quelque chose comme
var o = System.Text.Json.JsonSerializer.Deserialize<some-type>(json);
o.id // <- here's the ID!
Mais je n'ai pas de type qui correspond à cette définition et je ne veux pas en créer une. J'ai essayé de désérialiser en dynamique mais je n'ai pas réussi à le faire fonctionner.
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''
Quelqu'un peut-il donner des suggestions?
éditer:
Je viens de comprendre que je peux le faire:
Guid id = System.Text.Json.JsonDocument.Parse(json).RootElement.GetProperty("id").GetGuid();
Cela fonctionne - mais y a-t-il une meilleure façon?
mise à jour vers .NET Core 3.1 pour prendre en charge
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;
}
}