Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用JSON.NET解析自定义JSON响应_C#_Json_Json.net - Fatal编程技术网

C# 使用JSON.NET解析自定义JSON响应

C# 使用JSON.NET解析自定义JSON响应,c#,json,json.net,C#,Json,Json.net,这是我第一次尝试用json.net解析json响应,我完全迷路了。我已经在下面包含了一部分经过解析的json。我想做的是通过反向链接数组进行循环。我尝试过实现newtonsoft文档中的各种示例,但它们似乎不起作用,我认为这是因为我的json与它们的示例不匹配,而且我不知道如何进行必要的更正。如果有人能提供一些C代码让我开始学习,我会非常感激 谢谢, 混乱 首先,如前所述,您提供的JSON无效。 我想应该是这样的: { "accounts": [ { "10555": {

这是我第一次尝试用json.net解析json响应,我完全迷路了。我已经在下面包含了一部分经过解析的json。我想做的是通过反向链接数组进行循环。我尝试过实现newtonsoft文档中的各种示例,但它们似乎不起作用,我认为这是因为我的json与它们的示例不匹配,而且我不知道如何进行必要的更正。如果有人能提供一些C代码让我开始学习,我会非常感激

谢谢, 混乱


首先,如前所述,您提供的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; }
}