c# - 使用 JSON.NET 序列化公共(public)属性

标签 c# wcf json serialization json.net

我正在使用JSON.NET将 .NET 对象序列化/反序列化为 JS 的实现,反之亦然,在运行 GetWCFData() 之前,一切正常:

using Newtonsoft.Json;
using Newtonsoft.Json.Converters;

    public class WebLookup
    {
        WCFService.WCFServiceClient svc;
        IsoDateTimeConverter DateConverter = new IsoDateTimeConverter();


        List<WCFContract.Language> Languages { get; set; }
        List<WCFContract.Group> Groups { get; set; }
        List<WCFContract.User> Users { get; set; }

        public WebLookup()
        {
            DateConverter.DateTimeFormat = "dd/MM/yyyy";
            DateConverter.DateTimeStyles = System.Globalization.DateTimeStyles.AssumeLocal;
        }

        public string GetWCFData()
        {
            svc = new WCFService.WCFServiceClient();
            WebLookup weblookup = new WebLookup();
            weblookup.Languages = svc.GetWCFLanguages().ToList();
            weblookup.Groups = svc.GetWCFGroups().ToList();
            weblookup.Users = svc.GetWCFUsers().ToList();

            return JsonConvert.SerializeObject(weblookup, DateConverter);
        } 

    }

成员语言用户在调用WCF服务时成功填充,但是 JsonConvert.SerializeObject(lookup, DateConverter) 总是向客户端(网络浏览器)返回一个空的 JSON 字符串,这很奇怪,因为它通常在其他领域对我来说工作得很好,唯一的区别是在这里我将填充的 WebLookup 成员声明为类本身的公共(public)属性。

最佳答案

语言、组和用户属性需要声明为公共(public)成员,以便通过 JSON.NET 或内置 JavaScriptSerializer 进行序列化,但您的代码中并非如此。

关于c# - 使用 JSON.NET 序列化公共(public)属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8562076/

相关文章:

wcf - 如何让 WCF 与此 Web 服务对话?

wcf - 如何使用 Mono 创建 WCF 服务?

json - 如何保证 Swift 4 中的有效 JSON?

json - 错误搜寻 : CLDR 30 JSON data no longer has currencySpacing information

c# - 为什么使用 ExecutionAndPublication 的 Lazy<T> 与生成的 IEnumerables 行为不同?

c# - Windows Phone 8记录来自麦克风C#的声音

c# - WCF 从引用程序集返回某种类型的对象

未读取 C# MVC url 参数

c# - 在单独的线程中更新 ObservableCollection

c# - 继承时 Json 的奇怪行为