জসন ফর্ম্যাট করার জন্য আপনি নিম্নলিখিত মানক পদ্ধতিটি ব্যবহার করতে পারেন
JsonReaderWriterFactory.CreateJsonWriter (স্ট্রিম স্ট্রিম, এনকোডিং এনকোডিং, বুলের নিজস্ব স্ট্রিম, বুল ইন্ডেন্ট, স্ট্রিং ইনডেন্টচারস)
শুধুমাত্র "ইনডেন্ট == সত্য" সেট করুন
এরকম কিছু চেষ্টা করুন
public readonly DataContractJsonSerializerSettings Settings =
new DataContractJsonSerializerSettings
{ UseSimpleDictionaryFormat = true };
public void Keep<TValue>(TValue item, string path)
{
try
{
using (var stream = File.Open(path, FileMode.Create))
{
//var currentCulture = Thread.CurrentThread.CurrentCulture;
//Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
try
{
using (var writer = JsonReaderWriterFactory.CreateJsonWriter(
stream, Encoding.UTF8, true, true, " "))
{
var serializer = new DataContractJsonSerializer(type, Settings);
serializer.WriteObject(writer, item);
writer.Flush();
}
}
catch (Exception exception)
{
Debug.WriteLine(exception.ToString());
}
finally
{
//Thread.CurrentThread.CurrentCulture = currentCulture;
}
}
}
catch (Exception exception)
{
Debug.WriteLine(exception.ToString());
}
}
লাইনগুলিতে আপনার মনোযোগ দিন
var currentCulture = Thread.CurrentThread.CurrentCulture;
Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
....
Thread.CurrentThread.CurrentCulture = currentCulture;
কিছু প্রকারের এক্সএমএল-সিরিয়ালাইজের জন্য আপনার কম্পিউটারে বিভিন্ন আঞ্চলিক সেটিংস সহ ডিসিরিয়ালাইজেশন চলাকালীন ব্যতিক্রম এড়ানোর জন্য আপনার ইনভেরেন্ট কালচার ব্যবহার করা উচিত । উদাহরণস্বরূপ, ডাবল বা ডেটটাইমের অবৈধ বিন্যাস কখনও কখনও তাদের কারণ ঘটায়।
Deserialization জন্য
public TValue Revive<TValue>(string path, params object[] constructorArgs)
{
try
{
using (var stream = File.OpenRead(path))
{
//var currentCulture = Thread.CurrentThread.CurrentCulture;
//Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
try
{
var serializer = new DataContractJsonSerializer(type, Settings);
var item = (TValue) serializer.ReadObject(stream);
if (Equals(item, null)) throw new Exception();
return item;
}
catch (Exception exception)
{
Debug.WriteLine(exception.ToString());
return (TValue) Activator.CreateInstance(type, constructorArgs);
}
finally
{
//Thread.CurrentThread.CurrentCulture = currentCulture;
}
}
}
catch
{
return (TValue) Activator.CreateInstance(typeof (TValue), constructorArgs);
}
}
ধন্যবাদ!