C# 使用JSON.NET解析自定义JSON响应
这是我第一次尝试用json.net解析json响应,我完全迷路了。我已经在下面包含了一部分经过解析的json。我想做的是通过反向链接数组进行循环。我尝试过实现newtonsoft文档中的各种示例,但它们似乎不起作用,我认为这是因为我的json与它们的示例不匹配,而且我不知道如何进行必要的更正。如果有人能提供一些C代码让我开始学习,我会非常感激 谢谢, 混乱C# 使用JSON.NET解析自定义JSON响应,c#,json,json.net,C#,Json,Json.net,这是我第一次尝试用json.net解析json响应,我完全迷路了。我已经在下面包含了一部分经过解析的json。我想做的是通过反向链接数组进行循环。我尝试过实现newtonsoft文档中的各种示例,但它们似乎不起作用,我认为这是因为我的json与它们的示例不匹配,而且我不知道如何进行必要的更正。如果有人能提供一些C代码让我开始学习,我会非常感激 谢谢, 混乱 首先,如前所述,您提供的JSON无效。 我想应该是这样的: { "accounts": [ { "10555": {
首先,如前所述,您提供的JSON无效。 我想应该是这样的:
{
"accounts": [
{
"10555": {
"sites": [
{
"12222": {
"pages_indexed_in_bing": {
},
"download_time": null,
"backlinks": [
{
"anchor_text": "websites for insurance agents",
"source_url": "http://win-winbusinesses.com/insurance/how-to-building-an-effective-insurance-website/",
"found_on": "2015-07-15",
"page_authority": null,
"link_strength": 3,
"domain": "win-winbusinesses.com",
"domain_authority": 17
}
]
}
}
]
}
}
]
}
根据这个JSON,如果希望newtonsoft成功解析,您的类应该如下所示:
public class PagesIndexedInBing
{
}
public class Backlink
{
public string anchor_text { get; set; }
public string source_url { get; set; }
public string found_on { get; set; }
public object page_authority { get; set; }
public int link_strength { get; set; }
public string domain { get; set; }
public int domain_authority { get; set; }
}
public class __invalid_type__12222
{
public PagesIndexedInBing pages_indexed_in_bing { get; set; }
public object download_time { get; set; }
public List<Backlink> backlinks { get; set; }
}
public class Site
{
public __invalid_type__12222 __invalid_name__12222 { get; set; }
}
public class __invalid_type__10555
{
public List<Site> sites { get; set; }
}
public class Account
{
public __invalid_type__10555 __invalid_name__10555 { get; set; }
}
public class RootObject
{
public List<Account> accounts { get; set; }
}
公共类页面索引
{
}
公共类反向链接
{
公共字符串锚定\u文本{get;set;}
公共字符串源_url{get;set;}
在{get;set;}上找到了公共字符串
公共对象页\u权限{get;set;}
公共整数链接{get;set;}
公共字符串域{get;set;}
公共int域_权限{get;set;}
}
公共类\uuu无效\u类型\uuuu 12222
{
公共页面索引页面在{get;set;}
公共对象下载时间{get;set;}
公共列表反向链接{get;set;}
}
公共类网站
{
公共uuu无效uu12222 uuu无效uu12222{get;set;}
}
公共类\uuu无效\u类型\uuuu 10555
{
公共列表站点{get;set;}
}
公共类帐户
{
公共uuu无效uuu 10555 uuu无效uuu 10555{get;set;}
}
公共类根对象
{
公共列表帐户{get;set;}
}
正如您所看到的,由于您使用的类/var名称仅为数字名称,因此可能会出现问题,因此您可能也应该对此进行检查。请使用类似“感谢您的响应”的工具。我已经尝试了几个不同的类生成器,但是我使用的json响应导致了所有这些类生成器的错误,这就是我现在尝试直接查询响应的原因。您应该在这里发布完整的响应。是另一个很好的选择
json
似乎无效谢谢。我理解类/var名称的问题,我也尝试过类生成器。这就是我试图在不序列化json的情况下查询json的方法。Felix或Amit,你们中的任何一位能否提供更多关于json如何无效的信息?我想向API供应商提出这些问题。是否有我可以提供验证错误文档的规范?谢谢你的帮助。从我看来有两个问题:1。JSON格式ת中的一些括号丢失/放错了位置。可能是因为这只是反应的一部分,而不是全部。2.JSON格式描述数据和类结构,包括其名称。因此,根据JSON格式,表示存在一个名为“12222”的类的响应是无效的,因为类名必须以字母开头。谢谢,Felix。这帮了大忙,不客气!如果有帮助,请对答案进行投票,并将问题标记为已回答。谢谢
public class PagesIndexedInBing
{
}
public class Backlink
{
public string anchor_text { get; set; }
public string source_url { get; set; }
public string found_on { get; set; }
public object page_authority { get; set; }
public int link_strength { get; set; }
public string domain { get; set; }
public int domain_authority { get; set; }
}
public class __invalid_type__12222
{
public PagesIndexedInBing pages_indexed_in_bing { get; set; }
public object download_time { get; set; }
public List<Backlink> backlinks { get; set; }
}
public class Site
{
public __invalid_type__12222 __invalid_name__12222 { get; set; }
}
public class __invalid_type__10555
{
public List<Site> sites { get; set; }
}
public class Account
{
public __invalid_type__10555 __invalid_name__10555 { get; set; }
}
public class RootObject
{
public List<Account> accounts { get; set; }
}