เนื่องจากไม่มีJavaScriptSerializer
การใช้งานเนทีฟใดที่สามารถใช้จัดการสิ่งนี้ได้
ฉันสังเกตเห็นJsonResult
และฉันสามารถจัดรูปแบบข้อมูลเป็น JSON ด้วยสิ่งนี้ แต่ฉันจะ deserialize ได้อย่างไร
หรือบางทีฉันขาดการอ้างอิงบางอย่างในproject.json
?
เนื่องจากไม่มีJavaScriptSerializer
การใช้งานเนทีฟใดที่สามารถใช้จัดการสิ่งนี้ได้
ฉันสังเกตเห็นJsonResult
และฉันสามารถจัดรูปแบบข้อมูลเป็น JSON ด้วยสิ่งนี้ แต่ฉันจะ deserialize ได้อย่างไร
หรือบางทีฉันขาดการอ้างอิงบางอย่างในproject.json
?
คำตอบ:
คุณสามารถใช้Newtonsoft.Json
มันขึ้นอยู่กับMicrosoft.AspNet.Mvc.ModelBinding
ซึ่งเป็นที่พึ่งพาของMicrosoft.AspNet.Mvc
. ดังนั้นคุณไม่จำเป็นต้องเพิ่มการอ้างอิงใน project.json ของคุณ
#using Newtonsoft.Json
....
JsonConvert.DeserializeObject(json);
หมายเหตุการใช้ตัวควบคุม WebAPI คุณไม่จำเป็นต้องจัดการกับ JSON
Json.NETถูกลบออกจากกรอบงานที่ใช้ร่วมกัน ASP.NET Core 3.0
คุณสามารถใช้เลเยอร์ซีเรียลไลเซอร์JSON ใหม่ที่ด้านบนของประสิทธิภาพสูงUtf8JsonReader
และUtf8JsonWriter
. มัน deserialize อ็อบเจ็กต์จาก JSON และทำให้อ็อบเจกต์ต่อเนื่องเป็น JSON การจัดสรรหน่วยความจำจะน้อยที่สุดและรวมถึงการสนับสนุนสำหรับการอ่านและเขียน JSON พร้อมสตรีมแบบอะซิงโครนัส
ในการเริ่มต้นให้ใช้JsonSerializer
คลาสในSystem.Text.Json.Serialization
เนมสเปซ ดูเอกสารสำหรับข้อมูลและตัวอย่าง
วิธีใช้ Json.NET ในโครงการ ASP.NET Core 3.0:
services.AddMvc()
.AddNewtonsoftJson();
อ่านการสนับสนุน Json.NETในMigrate จาก ASP.NET Core 2.2 ถึง 3.0 Preview 2สำหรับข้อมูลเพิ่มเติม
Microsoft.AspNetCore.Mvc.Formatters.Json
มีการพึ่งพาMicrosoft.AspNetCore.JsonPatch
ซึ่งมีการพึ่งพาNewtonsoft.Json
9.0.1 nuget.org/packages/Microsoft.AspNetCore.Mvc.Formatters.Json , nuget.org/packages/Microsoft.AspNetCore.JsonPatch
. net core
using System.Text.Json;
var jsonStr = JsonSerializer.Serialize(MyObject)
var weatherForecast = JsonSerializer.Deserialize<MyObject>(jsonStr);
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการยกเว้นคุณสมบัติและค่าว่างโปรดดูที่ ด้านนี้ของ Microsoft