【发布时间】:2020-11-12 06:49:06
【问题描述】:
我正在做一个项目,我是 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);
}
}
并且这个函数给出了'Cannot cast Newtonsoft.Json.Linq.JArray to Newtonsoft.Json.Linq.JToken'的错误
public T Get<T>(string name)
{
try
{
T prop = Json.Value<T>(name);
return prop;
}
catch
{
return default(T);
}
}
可能的解决方案是什么?
【问题讨论】:
-
请添加 minimal reproducible example 和/或 json 这对你来说是失败的。但似乎你有 json 数组(即
"[ {'prop':1}, {'prop':2} ]"或只是[ 1,2,3,4 ]之类的name的属性) - 它不能变成NameValueCollection。 -
你能指导一下我需要对代码进行哪些更改吗?
-
如果没有所有需要的代码和实际任务,很难做到这一点,但首先建议不要为数组属性调用
GetNv。
标签: c# asp.net json asp.net-core json.net