Asp.net mvc 用方括号反序列化Json对象
我试图反序列化json对象,但出现错误。谁能帮帮我吗。这是一个例子Asp.net mvc 用方括号反序列化Json对象,asp.net-mvc,Asp.net Mvc,我试图反序列化json对象,但出现错误。谁能帮帮我吗。这是一个例子 [ { "heading": "some data", "company name":"some data", "href":"link" }, { "heading": "some data", "company name":"some data", "href":"link" }, { "heading": "some data", "company name":"some data
[
{
"heading": "some data",
"company name":"some data",
"href":"link"
},
{
"heading": "some data",
"company name":"some data",
"href":"link"
},
{
"heading": "some data",
"company name":"some data",
"href":"link"
}
]
下面是我如何尝试反序列化对象。提到的json数据来自api,位于Class1(公共类Class1)下的模型内
内部控制器
ParentObject a=JsonConvert.DeserializeObject<Class1>(responseData);
ParentObject a=JsonConvert.DeserializeObject(responseData);
我得到的错误是无法反序列化当前Json数组,因为该类型需要Json对象。。。。。。
这将非常有帮助发送的数据是一个数组。当使用许多在线实用程序中的一个进行解析时,封闭的模型看起来是这样的
public class Model : ParentObject {
public string heading { get; set; }
[JsonProperty("company name")] //<-- needed because of the space in the property name
public string companyname { get; set; }
public string href { get; set; }
}
公共类模型:ParentObject{
公共字符串标题{get;set;}
[JsonProperty(“公司名称”)]//由于错误指定了一个JSON对象,请尝试将其更改为一个对象。只需将其包装在{…}
中并给它一个键即可。例如,{“值”:[{…},{…},{…},{…}]}
。数组本身应该是格式良好的JSON,但您的解析器可能需要一个对象。哦,等等,不,它可能只是在尾随逗号上失败了。如果您想验证某个内容是否为有效的JSON,您可以尝试将JSON粘贴到中。JSON的响应来自第三方api,因此我无法控制它。好的,您必须处理它,因为他们没有向您发送有效的JSON。这是假设您的代码确实是他们正在发送的。如果错误始终一致,您可以在发送到解析器之前编辑字符串。或者您可以告诉第三方API修复其JSON。我在jsonlint.com中检查了这是否有效,是否已修复json反序列化错误,但有另一个错误。由于我使用的是ParentObject,视图将查找ParentObject并抛出错误。传递到字典中的模型项的类型为[]但需要ParentObject。然后更改模型以适合您的类,并更新视图以期望有一个集合(如果您需要),否则从数组中提取一个集合并返回该集合,以执行ParentObject模型[]a=JsonConvert.DeserializeObject(responseDate)之类的操作;此视图也正在呈现其他数据,工作正常(并且与ParentObject一起),但此部分作为数组响应,因此我遇到了此问题。
public class Model : ParentObject {
public string heading { get; set; }
[JsonProperty("company name")] //<-- needed because of the space in the property name
public string companyname { get; set; }
public string href { get; set; }
}
Model[] a = JsonConvert.DeserializeObject<Model[]>(responseData);