คำถามติดแท็ก json.net

Json.NET (หรือที่เรียกว่า Newtonsoft.Json) เป็นเฟรมเวิร์ก JSON ประสิทธิภาพสูงยอดนิยมสำหรับ. NET

4
เก็บปลอกเมื่อจัดลำดับพจนานุกรม
ฉันมีโครงการ Web Api ที่ได้รับการกำหนดค่าดังนี้: config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver(); อย่างไรก็ตามฉันต้องการให้ตัวครอบแป้นพจนานุกรมไม่เปลี่ยนแปลง มีแอตทริบิวต์ใดบ้างที่Newtonsoft.Jsonฉันสามารถใช้กับคลาสเพื่อแสดงว่าฉันต้องการให้ปลอกยังคงไม่เปลี่ยนแปลงระหว่างการทำให้เป็นอนุกรม public class SomeViewModel { public Dictionary<string, string> Data { get; set; } }
93 c#  json.net 

5
กำลังตรวจสอบ JToken ว่างหรือว่างใน JObject
ฉันมีดังต่อไปนี้ ... 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ด้วย .. แต่ดูเหมือนจะไม่ได้ผล
93 c#  sql  json.net 

11
ฉันจะแก้ไขข้อขัดแย้งของเวอร์ชันแอสเซมบลีกับ JSON.NET หลังจากอัปเดตการอ้างอิงแพ็คเกจ NuGet ในโครงการ ASP.NET MVC 5 ใหม่ได้อย่างไร
ฉันสร้างโครงการเว็บ ASP.NET MVC 5 ใหม่ใน VS 2013 (อัปเดต 1) จากนั้นอัปเดตแพ็คเกจ 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
แปลงวัตถุทุกประเภทเป็น JObject ด้วย Json.NET
ฉันมักจะต้องขยายรูปแบบโดเมนของฉันด้วยข้อมูลเพิ่มเติมก่อนส่งคืนให้กับไคลเอ็นต์ด้วย WebAPI เพื่อหลีกเลี่ยงการสร้าง ViewModel ฉันคิดว่าฉันสามารถส่งคืน JObject พร้อมคุณสมบัติเพิ่มเติมได้ อย่างไรก็ตามฉันไม่สามารถหาวิธีโดยตรงในการแปลงวัตถุประเภทใดก็ได้เป็น JObject ด้วยการเรียกใช้ไลบรารี Newtonsoft JSON เพียงครั้งเดียว ฉันคิดสิ่งนี้ขึ้นมา: 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, …
89 c#  .net  json.net 

9
การใช้ตัวแปลง Json.NET เพื่อ deserialize คุณสมบัติ
ฉันมีนิยามคลาสที่มีคุณสมบัติที่ส่งคืนอินเทอร์เฟซ public class Foo { public int Number { get; set; } public ISomething Thing { get; set; } } การพยายามทำให้คลาส Foo เป็นซีเรียลโดยใช้ Json.NET ทำให้ฉันมีข้อความแสดงข้อผิดพลาด "ไม่สามารถสร้างอินสแตนซ์ประเภท 'ISomething' ได้ไอบางอย่างอาจเป็นอินเทอร์เฟซหรือคลาสนามธรรม" มีแอตทริบิวต์ Json.NET หรือตัวแปลงที่จะให้ฉันระบุSomethingคลาสคอนกรีตที่จะใช้ระหว่างการดีซีเรียลไลเซชันหรือไม่

4
ส่ง JSON ผ่าน POST ใน C # และรับ 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 …

5
วิธีบอก Json.Net ทั่วโลกให้ใช้ StringEnumConverter กับ enums ทั้งหมด
ฉันต้องการแยกการแจงนับการแทนค่าสตริงและในทางกลับกันด้วย json.net วิธีเดียวที่ฉันสามารถหาเพื่อบอกให้กรอบงานใช้StringEnumConverterคือการใส่คำอธิบายประกอบคุณสมบัติที่เป็นปัญหาดังนี้: [JsonConverter(typeof(StringEnumConverter))] public virtual MyEnums MyEnum { get; set; } อย่างไรก็ตามในกรณีการใช้งานของฉันการกำหนดค่า json.net ทั่วโลกจะสะดวกกว่ามากเพื่อให้การแจงนับทั้งหมดได้รับ (de) ต่อเนื่องโดยใช้StringEnumConverterคำอธิบายประกอบโดยไม่จำเป็นต้องมีคำอธิบายประกอบเพิ่มเติม มีวิธีใดบ้างที่จะทำได้เช่นด้วยความช่วยเหลือของประเพณีJsonSerializerSettingsหรือไม่?
84 c#  .net  json  json.net 

3
'ไม่สามารถโหลดประเภท' Microsoft.AspNetCore.Mvc.MvcJsonOptions 'จากชุดประกอบ' Microsoft.AspNetCore.Mvc.Formatters.Json, Version = 3.0.0.0
ฉันใช้netstandard2.1ห้องสมุดในnetcoreapp3.0เว็บแอปพลิเคชันของฉัน เมื่อเพิ่มบริการของStartupฉันฉันได้รับข้อผิดพลาดด้านล่าง: 'ไม่สามารถโหลดประเภท' Microsoft.AspNetCore.Mvc.MvcJsonOptions 'จากชุดประกอบ' Microsoft.AspNetCore.Mvc.Formatters.Json, Version = 3.0.0.0 ฉันยังใช้คุณสมบัติบางอย่างจาก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 …

3
การแปลงรหัส newtonsoft เป็น System.Text.Json ใน. net core 3 สิ่งที่เทียบเท่ากับ JObject.Parse และ JsonProperty
ฉันกำลังแปลงการใช้งาน newtonsoft เป็นไลบรารี JSON ใหม่ใน. net core 3.0 ฉันมีรหัสต่อไปนี้ 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; …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.