হালনাগাদ
সবগুলো উত্তরের জন্য ধন্যবাদ। আমি একটি নতুন প্রকল্পে আছি এবং দেখে মনে হচ্ছে অবশেষে আমি এর তলানিতে পৌঁছেছি: দেখে মনে হচ্ছে নিম্নলিখিত কোডটি আসলে দোষারোপ করেছিল:
public static HttpResponseMessage GetHttpSuccessResponse(object response, HttpStatusCode code = HttpStatusCode.OK)
{
return new HttpResponseMessage()
{
StatusCode = code,
Content = response != null ? new JsonContent(response) : null
};
}
অন্যত্র ...
public JsonContent(object obj)
{
var encoded = JsonConvert.SerializeObject(obj, Newtonsoft.Json.Formatting.None, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore } );
_value = JObject.Parse(encoded);
Headers.ContentType = new MediaTypeHeaderValue("application/json");
}
আমি নির্দোষ চেহারা জসনকন্টকে এড়িয়ে গিয়েছিলাম এটি ধরে নিয়েছিলাম যে এটি ওয়েবএপিআই কিন্তু নয়।
এটি সর্বত্র ব্যবহৃত হয় ... আমি কি প্রথম বলি, ডাব্লুটিএফ? বা সম্ভবত এটি হওয়া উচিত "তারা কেন এটি করছে?"
মূল প্রশ্ন অনুসরণ
কেউ ভাবেন যে এটি একটি সাধারণ কনফিগারেশন সেটিংস হবে তবে এটি আমাকে খুব দীর্ঘকাল ধরে বহিষ্কার করেছে।
আমি বিভিন্ন সমাধান এবং উত্তরগুলি দেখেছি:
https://gist.github.com/rdingwall/2012642
সর্বশেষতম ওয়েবএপিআই সংস্করণে প্রয়োগ করা হবে বলে মনে হচ্ছে না ...
নিম্নলিখিতগুলি কাজ করে বলে মনে হচ্ছে না - সম্পত্তির নামগুলি এখনও পাসক্যাসেলযুক্ত।
var json = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
json.UseDataContractJsonSerializer = true;
json.SerializerSettings.NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore;
json.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
মায়াঙ্কের উত্তর এখানে: ক্যামেলকেস জেএসওন ওয়েবএপিআই সাব-অবজেক্টস (নেস্টেড অবজেক্টস, চাইল্ড অবজেক্টস) মনে হচ্ছিল যতক্ষণ না আমি লিনক টু এসকিএল ব্যবহার করছি সেহেতু এই বৈশিষ্ট্যগুলি উত্পন্ন কোডে যুক্ত করা উচিত ...
এটি কোনওভাবেই স্বয়ংক্রিয়ভাবে করবেন? এই 'বাজে' আমাকে দীর্ঘকাল ধরে জর্জরিত করেছে।
JsonSerializer
। stackoverflow.com/questions/13274625/…