تبدیل رشته جی سان به شی جی سان هنگام بازگرداندن دیتا از ای پی آی در دات نت کور

mohsen2 سال قبل
ارسال شده در
mohsen

فرض کنیم دیتایی سریالاز شده و در دیتابیس به صورت رشته نگهداری می شود. می خواهیم همین دیتا را از طریق ای پی آی برای کاربر ارسال کنیم و کاربر به جای رشته جی سان، انتظار یک شی جی سان از ما دارد. برای مثال، در خورجی زیر مقدار ویژگی content یک رشته است که سریالایز شده یک شی با دو ویژگی id و name است.

      { "content": "{\"id\": 10, \"name\": \"sample\"}" }
    

در صورتی که کاربر انتظار خروجی زیر را از ما دارد که به جای رشته، مقدار ویژگی content، خود یک شی است:

      { "content": {"id": 10, "name": "sample"} }
    

برای این کار می توانیم یک کانتورتر شخصی شده برای این کار بنویسیم:

      public class StringToJsonConverter : JsonConverter<string>
    {
        public override string? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
        {
            throw new NotImplementedException();
        }

        public override void Write(Utf8JsonWriter writer, string value, JsonSerializerOptions options)
        {
            writer.WriteRawValue(value);
        }
    }
    

و به صورت زیر برای پراپرتی مورد نظر استفاده کنیم:

      public class TestClass
{
        [JsonConverter(typeof(StringToJsonConverter))]
        public string Content { get; set; }
}
    
رای
0
ارسال نظر
مرتب سازی:
اولین نفری باشید که نظر می دهید!