C # ta sınıfın bir fieldı serialize edilemiyor?

Başlatan mir_as82, 14 Nisan 2018, 01:10:33

mir_as82

Elimde A sınıfından bir a nesnesi var ve bunun bir fieldi string türünden.
Örneğin:

a.sfield="[\"\"123\"\"]";//yani [""123""]

Bu a nesnesini serialize edip, json olarak göndermek istiyorum ama bu string property engel oluyor.
Bu sorunu, A sınıfındaki sfield i nasıl tanımlarsam aşarım? Veya yöntemi nedir ?

mir_as82

Bu durum ile karşılaşıp çözüm üreten oldu mu? Bir nesneyi serialize edip, Json olarak [""123""] değerini nasıl gönderirim?

Elektroemre

Örnek class'ını burada paylaşman mümkün mü? Normalde sorun olmaması lazım.

mir_as82

public class MyClass
{
    public string summary { get; set}
    public string desp { get; set}
    public Dictionary<string, string> myDict1{ get; set}
    public Dictionary<string, string> myDict2 { get; set}
    public string customField { get; set}
}

MyClass field = new MyClass();
//diğer 4 field sorunsuz çevriliyor ondan onları yazmadım.
field.customField = "[\"\"123\"\"]";


tunayk

Aşağıda örnek bir kod var. VS 2013 te sorunsuz şekilde çalışıyor.
class Program
    {
        static void Main(string[] args)
        {
            Data dat= new Data();
            System.IO.MemoryStream ms= new System.IO.MemoryStream();
            System.Runtime.Serialization.Formatters.Binary.BinaryFormatter BF = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
            BF.Serialize(ms, dat);
            Console.Write(ms.Length.ToString() + "Byte serialized");
            Console.ReadKey();
        }
    }
    [Serializable]
    class Data 
    {
        public Data() { }
        public string sData = "[\"\"123\"\"]";
        public int iData=1;    
    }

Elektroemre

Alıntı yapılan: mir_as82 - 14 Nisan 2018, 10:58:30public class MyClass
{
    public string summary { get; set}
    public string desp { get; set}
    public Dictionary<string, string> myDict1{ get; set}
    public Dictionary<string, string> myDict2 { get; set}
    public string customField { get; set}
}

MyClass field = new MyClass();
//diğer 4 field sorunsuz çevriliyor ondan onları yazmadım.
field.customField = "[\"\"123\"\"]";




Peki  field.customField = "abc"
olunca sorun çıkıyor mu?

mir_as82

Alıntı yapılan: Elektroemre - 14 Nisan 2018, 11:42:14Peki  field.customField = "abc"
olunca sorun çıkıyor mu?

Çıkmıyor hocam.

Yalnız ben burada serialize işlemini JavaScriptSerializer sınıfı ile yapıyorum. Burada bunun ile ilgili durum olabilir mi?

mir_as82

Arkadaşlar kod aşağıda çıktı da aşağıda. İstediğim çıktı şu,
{"customField":"[""123""]"}

Ama çıkan çıktı:
{"customField":"[\"\"123\"\"]"}

using System;
using System.Web.Script.Serialization;

namespace jsonSerializer
{
    class Program
    {
        static void Main(string[] args)
        {
            MyClass mc = new MyClass();
            mc.customField = "[\"\"123\"\"]";
            JavaScriptSerializer js = new JavaScriptSerializer();
            string json = js.Serialize(mc);
            Console.WriteLine(json);
            Console.ReadKey();
        }
    }

    [Serializable]
    public class MyClass
    {
        public string customField { get; set; }

    }
}


Çıktı:
{"customField":"[\"\"123\"\"]"}