タグ付けされた質問 「system.text.json」

5
ASP.NET Core 3.0 System.Text.Json Camel Case Serialization
ASP.NET Core 3.0 Web APIプロジェクトでは、System.Text.Jsonシリアル化オプションをどのように指定して、Pascalケースのプロパティをキャメルケースに、またはその逆に自動的にシリアル化/非シリアル化しますか? 次のようなPascal Caseプロパティを持つモデルがあるとします。 public class Person { public string Firstname { get; set; } public string Lastname { get; set; } } そして、System.Text.Jsonを使用してJSON文字列をPersonクラスのタイプに逆シリアル化するコード: var json = "{\"firstname\":\"John\",\"lastname\":\"Smith\"}"; var person = JsonSerializer.Deserialize<Person>(json); JsonPropertyNameが次のような各プロパティで使用されない限り、正常に逆シリアル化されません。 public class Person { [JsonPropertyName("firstname") public string Firstname { get; set; } [JsonPropertyName("lastname") public …

1
ASP.NET MVC Core 3.0 API列挙型を文字列にシリアル化
ASP.NET MVC Core 3.0でEnumフィールドをIntではなくStringにシリアル化する方法は?古い方法ではできません。 services.AddMvc().AddJsonOptions(opts => { opts.JsonSerializerOptions.Converters.Add(new StringEnumConverter()); }) エラーが発生します: 「Newtonsoft.Json.Converters.StringEnumConverter」から「System.Text.Json.Serialization.JsonConverter」に変換できません

5
System.Text.Json.JsonSerializerのデフォルトオプションをグローバルに設定する方法
更新[2019-12-23]: ボーカルコミュニティの入力に一部起因して、この問題は.NET 5.0のロードマップに追加されました。 更新[2019-10-10]: この動作の実装を確認したい場合System.Text.Json.JsonSerializerオーバーの頭オープンGitHubの問題が指摘クリスYungmannとで重量を量ります。 これの代わりに: JsonSerializerOptions options = new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase // etc. }; JsonSerializer.Deserialize<SomeObject>(someJsonString, options); 私はこのようなことをしたいと思います: // This property is a pleasant fiction JsonSerializer.DefaultSettings = new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase // etc. }; // This uses my options JsonSerializer.Deserialize<SomeObject>(someJsonString); // And somewhere else in …

3
.netコアでnewtonsoftコードをSystem.Text.Jsonに変換する3. JObject.ParseおよびJsonPropertyに相当するもの
私のnewtonsoft実装を.net core 3.0の新しいJSONライブラリに変換しています。次のコードがあります public static bool IsValidJson(string json) { try { JObject.Parse(json); return true; } catch (Exception ex) { Logger.ErrorFormat("Invalid Json Received {0}", json); Logger.Fatal(ex.Message); return false; } } に相当するものを見つけることができません JObject.Parse(json); また、JsonProperty同等の属性になります public class ResponseJson { [JsonProperty(PropertyName = "status")] public bool Status { get; set; } [JsonProperty(PropertyName = "message")] public …

4
System.Text.Jsonを使用してリストを非同期に逆シリアル化する
多くのオブジェクトのリストを含む大きなjsonファイルを要求するとします。一度にメモリに保存したくはありませんが、1つずつ読み取って処理したいと思います。したがって、非同期System.IO.Streamストリームをに変換する必要がありIAsyncEnumerable<T>ます。新しいSystem.Text.JsonAPIを使用してこれを行うにはどうすればよいですか? private async IAsyncEnumerable<T> GetList<T>(Uri url, CancellationToken cancellationToken = default) { using (var httpResponse = await httpClient.GetAsync(url, cancellationToken)) { using (var stream = await httpResponse.Content.ReadAsStreamAsync()) { // Probably do something with JsonSerializer.DeserializeAsync here without serializing the entire thing in one go } } }

2
JsonStringEnumConverter(System.Text.Json)はnull値をサポートしますか?
.NET Core 2.xから.NET Core 3.xにコードをシフトしています(つまり、ネイティブライブラリを使用していますSystem.Text.Json)。これを行う際に、以前のNewtonsoft.Jsonnull可能列挙型のサポートには現時点で明確な移行パスがないという問題が発生しました-.NET Core 3.xではサポートされていないようです。 たとえばNewtonsoft.Json、JSONコンバーターはを使用して、次のようにnull可能な列挙型をサポートしました。 public enum UserStatus { NotConfirmed, Active, Deleted } public class User { public string UserName { get; set; } [JsonConverter(typeof(StringEnumConverter))] // using Newtonsoft.Json public UserStatus? Status { get; set; } // Nullable Enum } ネイティブライブラリの現在のバージョンは、System.Text.Jsonこれをサポートしていないようです。 この問題を解決するにはどうすればよいですか?コードを移行できません!
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.