C# ';无法将Newtonsoft.Json.Linq.JArray强制转换为Newtonsoft.Json.Linq.JToken

C# ';无法将Newtonsoft.Json.Linq.JArray强制转换为Newtonsoft.Json.Linq.JToken,c#,asp.net,json,asp.net-core,json.net,C#,Asp.net,Json,Asp.net Core,Json.net,我正在做一个项目,我是c#的新手, 我想不出这个问题 下面是完整的课程 public class ApexJson { public JObject Json; public ApexJson() { this.Json = new JObject(); } public JProperty Set(string name, object content) { var prop = new JProperty(n

我正在做一个项目,我是c#的新手, 我想不出这个问题 下面是完整的课程

public class ApexJson
{
    public JObject Json;

    public ApexJson()
    {
        this.Json = new JObject();
    }

    public JProperty Set(string name, object content)
    {
        var prop = new JProperty(name, content);
        this.Json.Add(name, JValue.FromObject(content));
        return prop;
    }

    public T Get<T>(string name)
    {
        try
        {
            T prop = Json.Value<T>(name);

            return prop;
        }
        catch
        {
            return default(T);
        }
    }

    public NameValueCollection GetNv(string name)
    {
        return Get<NameValueCollection>(name);

    }
}
public类ApexJson
{
公职人员;
公共ApexJson()
{
this.Json=new JObject();
}
公共JProperty集(字符串名称、对象内容)
{
var prop=新的JProperty(名称、内容);
this.Json.Add(name,JValue.FromObject(content));
返回道具;
}
公共T获取(字符串名称)
{
尝试
{
T prop=Json.Value(名称);
返回道具;
}
抓住
{
返回默认值(T);
}
}
public NameValueCollection GetNv(字符串名称)
{
返回Get(名称);
}
}
此函数给出的错误为“无法将Newtonsoft.Json.Linq.JArray强制转换为Newtonsoft.Json.Linq.JToken”

public T Get<T>(string name)
{
    try
    {
        T prop = Json.Value<T>(name);

        return prop;
    }
    catch
    {
        return default(T);
    }
}
public T-Get(字符串名称)
{
尝试
{
T prop=Json.Value(名称);
返回道具;
}
抓住
{
返回默认值(T);
}
}
可能的解决方案是什么?

大家好,欢迎来到C

错误似乎不在显示的代码中

使用您的类,如果我运行以下命令:

            ApexJson a = new ApexJson();
            a.Set("foo", 42);
            Console.WriteLine(a.Get<int>("foo"));
            ApexJson a = new ApexJson();
            a.Set("foo", new JArray(42));
            Console.WriteLine(a.Get<JToken>("foo"));
事实上,如果我运行此命令:

            ApexJson a = new ApexJson();
            a.Set("foo", 42);
            Console.WriteLine(a.Get<int>("foo"));
            ApexJson a = new ApexJson();
            a.Set("foo", new JArray(42));
            Console.WriteLine(a.Get<JToken>("foo"));

我假设您在代码中没有显示的部分做了一些令人讨厌的事情

请添加和/或json,这对您来说是失败的。但是你似乎有json数组(比如
“[{'prop':1},{'prop':2}]”
或者只是
[1,2,3,4]
)作为
name
属性-它不能转换为
NameValueCollection
。你能指导我在代码中需要做哪些更改吗?没有所有需要的代码和实际任务,很难做到这一点,但第一个建议是不要为数组属性调用
GetNv