首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C# - Json.NET Config?

C# - Json.NET Config?
EN

Stack Overflow用户
提问于 2015-06-18 07:20:26
回答 1查看 452关注 0票数 0

我正在尝试使用Json.NET创建一个配置读取器类。

这是一堂课:

代码语言:javascript
运行
复制
 public sealed class ConfigFile : Dictionary<string, object>
    {
        public string FileName { get; private set; }

        public ConfigFile(string fileName)
        {
            this.FileName = fileName;

            this.Load();
        }

        private void Load()
        {
            string contents = File.ReadAllText(this.FileName);

            JsonTextReader reader = new JsonTextReader(new StringReader(contents));

            string lastKey = "";

            while (reader.Read())
            {
                if (reader.TokenType == JsonToken.PropertyName)
                {
                    lastKey = reader.Value.ToString();
                }
                else
                {
                    if (this.ContainsKey(lastKey))
                    {
                        continue;
                    }

                    this.Add(lastKey, reader.Value);
                }
            }
        }

效果很好。然而,它读取逐行。这意味着,如果我有一个像list这样的对象,它就不能正确地解析它。

我有几个问题。

  1. Json.NET的反序列化器如何知道如何正确读取.json文件并转换为正确的类型?在我的课堂上,我如何模仿同样的行为呢?
  2. 如何在我的类中使用JSON.Net反序列化器中使用的相同的读取行为,以便正确读取配置文件?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2015-06-18 07:32:57

我强烈建议挖掘Newtonsoft.Json的源代码。您似乎要寻找的操作在ReadInternal方法和下面的Parse*方法中。请看一下这里

当然,通过阅读代码,您可以学到很多东西,看起来finite state machine主要是允许处理对象读写的抽象。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30908908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档