繁体   English   中英

覆盖JValue和Json类中的ToString()

[英]Overriding ToString() in JValue and Json class

我被指责的部分内容如下:

覆写在JSON>实施例的JValue和JsonValue类ToString方法这里 输出应格式化,以便于阅读。

我可以使用此代码覆盖JValue ToString方法。

public override string ToString() {
    return Type.ToString() + ": " + Value.ToString();          
}

这成功地将Type属性作为字符串返回。 但是,Value属性返回为“Json.JsonObject”。 (顺便提一下,提供的代码在顶部链接)。

我的导师告诉我们这可以用两个覆盖完成,所以我假设第二个将进入JsonValue基类。 我无法弄清楚如何访问派生类中的值。

我可以单独覆盖每个派生类ToString方法,但这超过了我的2覆盖限制,但似乎仍然不适用于列表和字典。

希望这不是太模糊,但如果是,我基本上只需要帮助编写两个覆盖方法,以便如果我要运行此代码:

var json = new JValue { Object = new Dictionary<string, JValue>() };
json["name"] = new JValue("Joe Smith");
json["age"] = new JValue(31); 
if (json.Type == JType.Object)
{
        foreach (var value in json.Object)
        {
            System.Console.WriteLine(json.ToString())
        }
}

它将逐个返回字典中的每个JType和键值。

截至目前,我得到的输出就像“Object:Json.JsonObject”。

任何指导将不胜感激!

将其添加到以下派生类:JsonBool,JsonNumber,JsonString,

public override string ToString()
{
    return Value.ToString();
}

另外,在主要你想要:

foreach (var value in json.Object)
{
    System.Console.WriteLine(value.ToString());
}

您希望每个值都不是整个对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM