在LinqPad中,尝试在Newtonsoft JSON.Net .Dump()上调用JObject会产生异常:



这几乎适用于LinqPad中的所有其他内容。我想找出一种方法,将转储出Newtonsoft JObject,就像其他对象一样,显示属性名称,值等。

我已经想出了如何使它转储JSON字符串,但是我想看到一个对象获得输出,而不仅仅是文本字符串。

最佳答案

对于希望从JSON字符串获得漂亮的LINQPad输出的人来说,反序列化为ExpandoObject是一种有效的方法,并且递归地处理数据中可能存在的任何层次结构:
JsonConvert.DeserializeObject<ExpandoObject>(myJSONString).Dump();
扩展这一范围以涵盖实际问题,在JObject上使用以下方法扩展方法就可以解决问题:

public static class ExtMethods
{
    public static JObject DumpPretty(this JObject jo)
    {
        var jsonString = JsonConvert.SerializeObject(jo);
        JsonConvert.DeserializeObject<ExpandoObject>(jsonString).Dump();

        return jo;  // return input in the spirit of LINQPad's Dump() method.
    }
}

不是最有效的方法,但是要在LINQPad中快速浏览时可以解决问题。

关于c# - 如何在LinqPad中转储()Newtonsoft JObject?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14406769/

10-12 22:46