我被指责的部分内容如下:
在JSON>示例here中重写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。
非常感谢任何指导!
答案 0 :(得分:0)
将此添加到以下派生类:JsonBool,JsonNumber,JsonString,
public override string ToString()
{
return Value.ToString();
}
另外,在主要你想要:
foreach (var value in json.Object)
{
System.Console.WriteLine(value.ToString());
}
您希望每个值都不是整个对象。