Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.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
将JSON反序列化为c#对象_C#_Asp.net_Json_Deserialization_Json Deserialization - Fatal编程技术网

将JSON反序列化为c#对象

将JSON反序列化为c#对象,c#,asp.net,json,deserialization,json-deserialization,C#,Asp.net,Json,Deserialization,Json Deserialization,我试图将上面的json反序列化到我的对象中,但是计数部分没有得到反序列化。我的目标是 {"facet_counts":{ "facet_queries":{}, "facet_fields":{}, "facet_dates":{}, "facet_ranges":{ "createdat":{ "counts":[ "2015-05-17T00:00:00Z",155, "2015-05-18T00:00:00Z",162,

我试图将上面的json反序列化到我的对象中,但是计数部分没有得到反序列化。我的目标是

{"facet_counts":{
  "facet_queries":{},
  "facet_fields":{},
  "facet_dates":{},
  "facet_ranges":{
    "createdat":{
      "counts":[
        "2015-05-17T00:00:00Z",155,
        "2015-05-18T00:00:00Z",162,
        "2015-05-19T00:00:00Z",200,
        "2015-05-20T00:00:00Z",218,
        "2015-05-21T00:00:00Z",181,
        "2015-05-22T00:00:00Z",137],
      "gap":"+1DAY",
      "start":"2015-05-17T00:00:00Z",
      "end":"2015-05-23T00:00:00Z"}}}}
公共类FaceCounts
{
公共类
{
公共类CreatedAt
{
公共列表计数{get;set;}
公共类计数
{
公共字典计数{get;set;}
}
}
public CreatedAt CreatedAt{get;set;}
}
公共方面\范围方面\范围{get;set;}
}
我还尝试删除
公共字典计数{get;set;}
,但仍然失败。 我的反序列化代码是

public class FacetCounts
{
    public class Facet_Ranges
    {
        public class CreatedAt
        {
            public List<Counts> counts { get; set; }
            public class Counts
            {
                public Dictionary<string, int> count { get; set; }
            }
        }
        public CreatedAt createdat { get; set; }
    }
    public Facet_Ranges facet_ranges { get; set; }
}
objObject=JsonConvert.DeserializeObject(json);

任何帮助都将不胜感激

{}

objObject = JsonConvert.DeserializeObject<FacetCounts>(json);

这不是有效的json-您的count对象需要位于{大括号}中

仅供参考-您还可以使用json2csharp.com自动生成要反序列化的c-sharp对象,这也会突出显示类似的问题。

公共类FaceCounts
"facet_counts":{
    "facet_queries":{},
    "facet_fields":{},
    "facet_dates":{},
    "facet_ranges":{
        "createdat":{
            "counts":[
                {"2015-05-17T00:00:00Z",155},
                {"2015-05-18T00:00:00Z",162},
                {"2015-05-19T00:00:00Z",200},
                {"2015-05-20T00:00:00Z",218},
                {"2015-05-21T00:00:00Z",181},
                {"2015-05-22T00:00:00Z",137}],
        "gap":"+1DAY",
        "start":"2015-05-17T00:00:00Z",
        "end":"2015-05-23T00:00:00Z"}}}
{ 公共类 { 公共类CreatedAt { 公开名单计数 { 得到 { 返回计数 .SelectMany(pair=>new[]{pair.Key,pair.Value.ToString()}) .ToList(); } 设置 { var pairs=新字典(); 对于(变量i=0;i
来自

public类Createdat
{
公共列表计数{get;set;}
公共字符串间隔{get;set;}
公共字符串开始{get;set;}
公共字符串结束{get;set;}
}
这对我很有效

您的JSon无效。 错误是在完整的JSon字符串{}周围缺少大括号

以下是一个可用的JSon字符串:

public class Createdat
{
    public List<object> counts { get; set; }
    public string gap { get; set; }
    public string start { get; set; }
    public string end { get; set; }
}
我用于验证您的JSon,并且一个错误一个错误地修复了错误。

我不确定您的C#代码反序列化JSon是否正确,因此我建议您使用,例如,为了在C#中创建JSon对象。然后你可以修复变量名等。

但是我从外部对象获取json,我如何修改它返回的方式?你不能,但你可能应该把它放在问题中。谢谢你的努力,伙计,但我找到了一个更简单的方法。这是一个有效的json,你提到的站点,我把代码放在那里,它给了我输出。谢谢你的链接。很明显,在我吃早餐的时候,有上百万条回复。非常感谢你的努力伙伴,我在Json2Csharp上验证了我的JSON,它给了我正确的输出类。太好了!没问题。=)这是你的答案吗?如果是,请将其标记为答案。如果没有,是否需要更多帮助?=)
public class Createdat
{
    public List<object> counts { get; set; }
    public string gap { get; set; }
    public string start { get; set; }
    public string end { get; set; }
}
{
"facet_counts": {
    "facet_queries": {},
    "facet_fields": {},
    "facet_dates": {},
    "facet_ranges": {
        "createdat": {
            "counts": [
                "2015-05-17T00:00:00Z",
                155,
                "2015-05-18T00:00:00Z",
                162,
                "2015-05-19T00:00:00Z",
                200,
                "2015-05-20T00:00:00Z",
                218,
                "2015-05-21T00:00:00Z",
                181,
                "2015-05-22T00:00:00Z",
                137
            ],
            "gap": "+1DAY",
            "start": "2015-05-17T00:00:00Z",
            "end": "2015-05-23T00:00:00Z"
            }
        }
    }
}