C# ';无法将Newtonsoft.Json.Linq.JArray强制转换为Newtonsoft.Json.Linq.JToken
我正在做一个项目,我是c#的新手, 我想不出这个问题 下面是完整的课程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
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
。