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

Json.NET(別名Newtonsoft.Json)は、.NET用の人気のある高性能JSONフレームワークです。

4
辞書をシリアル化するときは大文字と小文字を区別してください
次のように構成されているWebApiプロジェクトがあります。 config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver(); ただし、辞書キーのケーシングは変更しないでください。Newtonsoft.Jsonシリアル化中にケーシングを変更しないことを示すためにクラスに使用できる属性はありますか? public class SomeViewModel { public Dictionary<string, string> Data { get; set; } }
92 c#  json.net 

5
JObjectで空またはnullのJTokenをチェックする
私は以下を持っています... JArray clients = (JArray)clientsParsed["objects"]; foreach (JObject item in clients.Children()) { // etc.. SQL params stuff... command.Parameters["@MyParameter"].Value = JTokenToSql(item["thisParameter"]); } JTokenToSql このように見えます... public static object JTokenToSql(JToken obj) { if (obj.Any()) return (object)obj; else return (object)DBNull.Value; } 私も試し((JObject)obj).Countましたが..でも動作していないようです。
90 c#  sql  json.net 

11
新しいASP.NET MVC 5プロジェクトのNuGetパッケージ参照を更新した後、JSON.NETとのアセンブリバージョンの競合を修正するにはどうすればよいですか?
VS 2013(Update 1)で新しいASP.NET MVC 5 Webプロジェクトを作成し、すべてのNuGetパッケージを更新しました。プロジェクトをビルドすると、次の警告が表示されます。 警告MSB3243:「Newtonsoft.Json、Version = 6.0.0.0、Culture = neutral、PublicKeyToken = 30ad4fe6b2a6aeed」と「Newtonsoft.Json、Version = 4.5.0.0、Culture = neutral、PublicKeyToken = 30ad4fe6b2a6aeed」の間の競合を解決する方法はありません。 しかし、web.configを確認すると、バインディングリダイレクトが設定されていることがわかります。 <dependentAssembly> <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/> <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0"/> </dependentAssembly> これはまさに警告が忠告するものです。 この警告を修正するにはどうすればよいですか?

3
Json.NETを使用して任意のタイプのオブジェクトをJObjectに変換します
WebAPIを使用してクライアントに返す前に、ドメインモデルを追加情報で拡張する必要があることがよくあります。ViewModelの作成を回避するために、追加のプロパティを持つJObjectを返すことができると思いました。ただし、Newtonsoft JSONライブラリを1回呼び出すだけで、任意のタイプのオブジェクトをJObjectに変換する直接的な方法を見つけることができませんでした。私はこのようなものを思いついた: 最初のSerializeObject 次に解析します JObjectを拡張します 例えば。: var cycles = cycleSource.AllCycles(); var settings = new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() }; var vm = new JArray(); foreach (var cycle in cycles) { var cycleJson = JObject.Parse(JsonConvert.SerializeObject(cycle, settings)); // extend cycleJson ...... vm.Add(cycleJson); } return vm; 私はこれが正しい方法ですか?
89 c#  .net  json.net 

9
Json.NETコンバーターを使用してプロパティを逆シリアル化する
インターフェイスを返すプロパティを含むクラス定義があります。 public class Foo { public int Number { get; set; } public ISomething Thing { get; set; } } Json.NETを使用してFooクラスをシリアル化しようとすると、「タイプ 'ISomething'のインスタンスを作成できませんでした。ISomethingはインターフェイスまたは抽象クラスである可能性があります。」のようなエラーメッセージが表示されます。 Somethingデシリアライズ中に使用する具象クラスを指定できるJson.NET属性またはコンバーターはありますか?

4
C#でPOSTを介してJSONを送信し、返されたJSONを受信しますか?
これが私の最初だけでなく、今までにJSONを使用して、時間であるSystem.NetとWebRequest私のアプリケーションのいずれかで。私のアプリケーションは、以下のようなJSONペイロードを認証サーバーに送信することになっています。 { "agent": { "name": "Agent Name", "version": 1 }, "username": "Username", "password": "User Password", "token": "xxxxxx" } このペイロードを作成するために、私はJSON.NETライブラリを使用しました。このデータを認証サーバーに送信し、そのJSON応答を受信するにはどうすればよいですか?これが私がいくつかの例で見たものですが、JSONコンテンツはありません: var http = (HttpWebRequest)WebRequest.Create(new Uri(baseUrl)); http.Accept = "application/json"; http.ContentType = "application/json"; http.Method = "POST"; string parsedContent = "Parsed JSON Content needs to go here"; ASCIIEncoding encoding = new ASCIIEncoding(); Byte[] bytes …

5
StringEnumConverterをすべての列挙型に適用するようにJson.Netにグローバルに指示する方法
json.netを使用して、列挙型を文字列表現に逆シリアル化し、その逆も行いたいです。フレームワークに適用するように指示する唯一の方法StringEnumConverterは、問題のプロパティに次のように注釈を付けることです。 [JsonConverter(typeof(StringEnumConverter))] public virtual MyEnums MyEnum { get; set; } ただし、私のユースケースではStringEnumConverter、追加のアノテーションを必要とせずに、すべての列挙がを使用して(逆)シリアル化されるように、json.netをグローバルに構成する方がはるかに便利です。 たとえばカスタムの助けを借りて、そうする方法はありますJsonSerializerSettingsか?
84 c#  .net  json  json.net 

3
JTokenをJObjectに追加するにはどうすればよいですか?
JSON.Netを使用して、あるテキストから既存のJSONファイルにJSONオブジェクトを追加しようとしています。たとえば、次のようなJSONデータがある場合: { "food": { "fruit": { "apple": { "colour": "red", "size": "small" }, "orange": { "colour": "orange", "size": "large" } } } } 私はこのようにこれをやろうとしてきました: var foodJsonObj = JObject.Parse(jsonText); var bananaJson = JObject.Parse(@"{ ""banana"" : { ""colour"": ""yellow"", ""size"": ""medium""}}"); var bananaToken = bananaJson as JToken; foodJsonObj["food"]["fruit"]["orange"].AddAfterSelf(bananaToken); しかし、これはエラーを引き起こします: "Newtonsoft.Json.Linq.JProperty cannot have …
84 c#  json.net 

3
NewtonsoftJSONデシリアライズ
私のJSONは次のとおりです。 {"t":"1339886","a":true,"data":[],"Type":[['Ants','Biz','Tro']]} C#用のNewtonsoftJSON.NET逆シリアル化ライブラリを見つけました。私はそれを次のように使用しようとしました: object JsonDe = JsonConvert.DeserializeObject(Json); JsonDeオブジェクトにアクセスしてすべての「タイプ」データを取得するにはどうすればよいですか?ループで試しましたが、オブジェクトに列挙子がないため機能しません。

4
JObject.ParseとJsonConvert.DeserializeObject
JsonConvert.DeserializeObjectとJObject.Parseの違いは何ですか?私の知る限り、どちらも文字列を取り、Json.NETライブラリにあります。どのような状況が一方を他方よりも便利にするのでしょうか、それとも主に好みですか? 参考までに、両方を使用してまったく同じことを行う例を次に示します。Json文字列を解析し、Json属性の1つのリストを返します。 public ActionResult ReadJson() { string countiesJson = "{'Everything':[{'county_name':null,'description':null,'feat_class':'Civil','feature_id':'36865'," +"'fips_class':'H1','fips_county_cd':'1','full_county_name':null,'link_title':null,'url':'http://www.alachuacounty.us/','name':'Alachua County'"+ ",'primary_latitude':'29.7','primary_longitude':'-82.33','state_abbreviation':'FL','state_name':'Florida'},"+ "{'county_name':null,'description':null,"+ "'feat_class':'Civil','feature_id':'36866','fips_class':'H1','fips_county_cd':'3','full_county_name':null,'link_title':null,'url':'http://www.bakercountyfl.org/','name':'Baker County','primary_latitude':'30.33','primary_longitude':'-82.29','state_abbreviation':'FL','state_name':'Florida'}]}"; //Can use either JSONParseObject or JSONParseDynamic here List<string> counties = JSONParseObject(countiesJson); JSONParseDynamic(countiesJson); return View(counties); } public List<string> JSONParseObject(string jsonText) { JObject jResults = JObject.Parse(jsonText); List<string> counties = new List<string>(); foreach (var county in jResults["Everything"]) …

3
JSON.netでJTokenの名前/キーを取得する
私はこのようなJSONを持っています [ { "MobileSiteContent": { "Culture": "en_au", "Key": [ "NameOfKey1" ] } }, { "PageContent": { "Culture": "en_au", "Page": [ "about-us/" ] } } ] これをJArrayとして解析します。 var array = JArray.Parse(json); 次に、配列をループします。 foreach (var content in array) { } content は JToken 各アイテムの「名前」または「キー」を取得するにはどうすればよいですか? たとえば、「MobileSiteContent」または「PageContent」
82 c#  json  json.net 

15
自己参照ループが検出されました-WebApiからブラウザにデータを取り戻します
Entity Frameworkを使用していますが、親と子のデータをブラウザーに取得する際に問題が発生します。これが私のクラスです: public class Question { public int QuestionId { get; set; } public string Title { get; set; } public virtual ICollection<Answer> Answers { get; set; } } public class Answer { public int AnswerId { get; set; } public string Text { get; set; } public int QuestionId …

3
'アセンブリ' Microsoft.AspNetCore.Mvc.Formatters.Json、Version = 3.0.0.0から型 'Microsoft.AspNetCore.Mvc.MvcJsonOptions'を読み込めませんでした
Webアプリケーションでnetstandard2.1ライブラリを使用してnetcoreapp3.0います。にサービスを追加すると、Startup次のエラーが発生します。 'アセンブリ' Microsoft.AspNetCore.Mvc.Formatters.Json、Version = 3.0.0.0から型 'Microsoft.AspNetCore.Mvc.MvcJsonOptions'を読み込めませんでした またMicrosoft.AspNetCore.Mvc、クラスライブラリで2.2.0パッケージの機能をいくつか使用しています。 これが私のライブラリです.csproj、 <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>netstandard2.1</TargetFramework> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.2.0" /> </ItemGroup> </Project> これが私のServiceExtensionsライブラリのクラスです。 public static class ServiceExtensions { public static IMvcBuilder AddMyLibrary(this IMvcBuilder builder) { builder.Services.TryAddSingleton<IHttpContextAccessor, HttpContextAccessor>(); builder.AddJsonOptions(options => { options.SerializerSettings.ContractResolver = new DefaultContractResolver(); }); builder.Services.ConfigureOptions<ConfigureLibraryOptions>(); return builder; } } これが私のConfigureLibraryOptionsクラスです public …

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 …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.