Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.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
net将复杂的JSON字符串反序列化为C#数组_C#_Json_Json.net_Deserialization - Fatal编程技术网

net将复杂的JSON字符串反序列化为C#数组

net将复杂的JSON字符串反序列化为C#数组,c#,json,json.net,deserialization,C#,Json,Json.net,Deserialization,我已经做了一段时间了,只是越来越困惑和沮丧。在下面的代码中,我试图反序列化为一个“观察”数组。我尝试了很多东西,我知道问题出在我的模型上,但我很难找到解决办法。这是你的电话号码 这是班级结构 public class Features { public int history { get; set; } } public class Response { public string version { get; set;

我已经做了一段时间了,只是越来越困惑和沮丧。在下面的代码中,我试图反序列化为一个“观察”数组。我尝试了很多东西,我知道问题出在我的模型上,但我很难找到解决办法。这是你的电话号码

这是班级结构

    public class Features
    {
        public int history { get; set; }
    }

    public class Response
    {
        public string version { get; set; }
        public string termsofService { get; set; }
        public Features features { get; set; }
    }

    public class Date
    {
        public string pretty { get; set; }
        public string year { get; set; }
        public string mon { get; set; }
        public string mday { get; set; }
        public string hour { get; set; }
        public string min { get; set; }
        public string tzname { get; set; }
    }

    public class Utcdate
    {
        public string pretty { get; set; }
        public string year { get; set; }
        public string mon { get; set; }
        public string mday { get; set; }
        public string hour { get; set; }
        public string min { get; set; }
        public string tzname { get; set; }
    }

    public class Date2
    {
        public string pretty { get; set; }
        public string year { get; set; }
        public string mon { get; set; }
        public string mday { get; set; }
        public string hour { get; set; }
        public string min { get; set; }
        public string tzname { get; set; }
    }

    public class Utcdate2
    {
        public string pretty { get; set; }
        public string year { get; set; }
        public string mon { get; set; }
        public string mday { get; set; }
        public string hour { get; set; }
        public string min { get; set; }
        public string tzname { get; set; }
    }

    public class Observation
    {
        public Date2 date { get; set; }
        public Utcdate2 utcdate { get; set; }
        public string tempm { get; set; }
        public string tempi { get; set; }
        public string dewptm { get; set; }
        public string dewpti { get; set; }
        public string hum { get; set; }
        public string wspdm { get; set; }
        public string wspdi { get; set; }
        public string wgustm { get; set; }
        public string wgusti { get; set; }
        public string wdird { get; set; }
        public string wdire { get; set; }
        public string pressurem { get; set; }
        public string pressurei { get; set; }
        public string windchillm { get; set; }
        public string windchilli { get; set; }
        public string heatindexm { get; set; }
        public string heatindexi { get; set; }
        public string precip_ratem { get; set; }
        public string precip_ratei { get; set; }
        public string precip_totalm { get; set; }
        public string precip_totali { get; set; }
        public string solarradiation { get; set; }
        public string UV { get; set; }
        public string softwaretype { get; set; }
    }

    public class Date3
    {
        public string pretty { get; set; }
        public string year { get; set; }
        public string mon { get; set; }
        public string mday { get; set; }
        public string hour { get; set; }
        public string min { get; set; }
        public string tzname { get; set; }
    }

    public class Utcdate3
    {
        public string pretty { get; set; }
        public string year { get; set; }
        public string mon { get; set; }
        public string mday { get; set; }
        public string hour { get; set; }
        public string min { get; set; }
        public string tzname { get; set; }
    }

    public class Dailysummary
    {
        public Date3 date { get; set; }
        public Utcdate3 utcdate { get; set; }
        public string meantempm { get; set; }
        public string meantempi { get; set; }
        public string meandewptm { get; set; }
        public string meandewpti { get; set; }
        public string meanwindspdm { get; set; }
        public string meanwindspdi { get; set; }
        public string meanwdire { get; set; }
        public string meanwdird { get; set; }
        public string humidity { get; set; }
        public string maxtempm { get; set; }
        public string maxtempi { get; set; }
        public string mintempm { get; set; }
        public string mintempi { get; set; }
        public string maxhumidity { get; set; }
        public string minhumidity { get; set; }
        public string maxdewptm { get; set; }
        public string maxdewpti { get; set; }
        public string mindewptm { get; set; }
        public string mindewpti { get; set; }
        public string maxpressurem { get; set; }
        public string maxpressurei { get; set; }
        public string minpressurem { get; set; }
        public string minpressurei { get; set; }
        public string maxwspdm { get; set; }
        public string maxwspdi { get; set; }
        public string precipm { get; set; }
        public string precipi { get; set; }
    }

    public class History
    {
        public Date date { get; set; }
        public Utcdate utcdate { get; set; }
        public List<Observation> observations { get; set; }
        public List<Dailysummary> dailysummary { get; set; }
    }

    public class RootObject
    {
        public Response response { get; set; }
        public History history { get; set; }
    }

有什么建议可以让它发挥作用吗?谢谢大家。

您可以通过编程在此处创建您的类:


JSON必须有效。

您可以通过编程在此处创建类:


JSON必须有效。

您可以通过编程在此处创建类:


JSON必须有效。

您可以通过编程在此处创建类:


JSON必须有效。

JSON文件的内容似乎无效,可能会丢失一个
{}

我已经尝试过这个json内容,它很有效

{"response": {
  "version": "0.1",
  "termsofService": "http://www.wunderground.com/weather/api/d/terms.html",
  "features": {
  "history": 1
 }
 },
 "history": {
  "date": {
   "pretty": "December 18, 2013",
   "year": "2013",
   "mon": "12",
   "mday": "18",
   "hour": "00",
   "min": "00",
   "tzname": "America/Denver"
  }
 }
}

json文件的内容似乎无效,可能会丢失
{}

我已经尝试过这个json内容,它很有效

{"response": {
  "version": "0.1",
  "termsofService": "http://www.wunderground.com/weather/api/d/terms.html",
  "features": {
  "history": 1
 }
 },
 "history": {
  "date": {
   "pretty": "December 18, 2013",
   "year": "2013",
   "mon": "12",
   "mday": "18",
   "hour": "00",
   "min": "00",
   "tzname": "America/Denver"
  }
 }
}

json文件的内容似乎无效,可能会丢失
{}

我已经尝试过这个json内容,它很有效

{"response": {
  "version": "0.1",
  "termsofService": "http://www.wunderground.com/weather/api/d/terms.html",
  "features": {
  "history": 1
 }
 },
 "history": {
  "date": {
   "pretty": "December 18, 2013",
   "year": "2013",
   "mon": "12",
   "mday": "18",
   "hour": "00",
   "min": "00",
   "tzname": "America/Denver"
  }
 }
}

json文件的内容似乎无效,可能会丢失
{}

我已经尝试过这个json内容,它很有效

{"response": {
  "version": "0.1",
  "termsofService": "http://www.wunderground.com/weather/api/d/terms.html",
  "features": {
  "history": 1
 }
 },
 "history": {
  "date": {
   "pretty": "December 18, 2013",
   "year": "2013",
   "mon": "12",
   "mday": "18",
   "hour": "00",
   "min": "00",
   "tzname": "America/Denver"
  }
 }
}

您发布的JSON似乎格式不完全正确。也许是你发的时候弄坏了

修复该问题后,您可能应该对对象进行如下反序列化:

RootObject rootObject = JsonConvert.DeserializeObject<RootObject>(yourJSON);
用法:

string json = File.ReadAllText("jsontest.json");

var container = JsonConvert.DeserializeObject<HistoryResponseContainer>(json);

foreach (var observation in container.history.observations)
{
    // whatever you want to do with each observation

    // I also gave you easier access to the date. not perfect, but better.
    DateTime date = observation.date.Value;
    DateTime utc = observation.utcdate.Value;
}
string json=File.ReadAllText(“jsontest.json”);
var container=JsonConvert.DeserializeObject(json);
foreach(容器中的var观测值。历史记录。观测值)
{
//无论你想对每个观察做什么
//我还让你更容易找到约会对象。虽然不完美,但更好。
DateTime日期=observation.date.Value;
日期时间utc=observation.utcdate.Value;
}

您发布的JSON格式似乎不完整。也许是你发的时候弄坏了

修复该问题后,您可能应该对对象进行如下反序列化:

RootObject rootObject = JsonConvert.DeserializeObject<RootObject>(yourJSON);
用法:

string json = File.ReadAllText("jsontest.json");

var container = JsonConvert.DeserializeObject<HistoryResponseContainer>(json);

foreach (var observation in container.history.observations)
{
    // whatever you want to do with each observation

    // I also gave you easier access to the date. not perfect, but better.
    DateTime date = observation.date.Value;
    DateTime utc = observation.utcdate.Value;
}
string json=File.ReadAllText(“jsontest.json”);
var container=JsonConvert.DeserializeObject(json);
foreach(容器中的var观测值。历史记录。观测值)
{
//无论你想对每个观察做什么
//我还让你更容易找到约会对象。虽然不完美,但更好。
DateTime日期=observation.date.Value;
日期时间utc=observation.utcdate.Value;
}

您发布的JSON格式似乎不完整。也许是你发的时候弄坏了

修复该问题后,您可能应该对对象进行如下反序列化:

RootObject rootObject = JsonConvert.DeserializeObject<RootObject>(yourJSON);
用法:

string json = File.ReadAllText("jsontest.json");

var container = JsonConvert.DeserializeObject<HistoryResponseContainer>(json);

foreach (var observation in container.history.observations)
{
    // whatever you want to do with each observation

    // I also gave you easier access to the date. not perfect, but better.
    DateTime date = observation.date.Value;
    DateTime utc = observation.utcdate.Value;
}
string json=File.ReadAllText(“jsontest.json”);
var container=JsonConvert.DeserializeObject(json);
foreach(容器中的var观测值。历史记录。观测值)
{
//无论你想对每个观察做什么
//我还让你更容易找到约会对象。虽然不完美,但更好。
DateTime日期=observation.date.Value;
日期时间utc=observation.utcdate.Value;
}

您发布的JSON格式似乎不完整。也许是你发的时候弄坏了

修复该问题后,您可能应该对对象进行如下反序列化:

RootObject rootObject = JsonConvert.DeserializeObject<RootObject>(yourJSON);
用法:

string json = File.ReadAllText("jsontest.json");

var container = JsonConvert.DeserializeObject<HistoryResponseContainer>(json);

foreach (var observation in container.history.observations)
{
    // whatever you want to do with each observation

    // I also gave you easier access to the date. not perfect, but better.
    DateTime date = observation.date.Value;
    DateTime utc = observation.utcdate.Value;
}
string json=File.ReadAllText(“jsontest.json”);
var container=JsonConvert.DeserializeObject(json);
foreach(容器中的var观测值。历史记录。观测值)
{
//无论你想对每个观察做什么
//我还让你更容易找到约会对象。虽然不完美,但更好。
DateTime日期=observation.date.Value;
日期时间utc=observation.utcdate.Value;
}


您使用的是Newtonsoft.dll还是JavascriptSerializer?我在Xamarin中使用的是.dll。以前是Mono.dll,您使用的是Newtonsoft.dll还是JavascriptSerializer?我在Xamarin中使用的是.dll。以前是Mono.dll,您使用的是Newtonsoft.dll还是JavascriptSerializer?我在Xamarin中使用的是.dll。以前是Mono.dll,您使用的是Newtonsoft.dll还是JavascriptSerializer?我在Xamarin中使用的是.dll。以前是Mono。这正是我用来创建这些类的方法。我将你的JSON粘贴到网站上,然后它被“barfed”了。你用来创建类的JSON与你的问题不一样。为了简洁起见,这是一个糟糕的复制/粘贴工作。我编辑了这篇文章,加入了我使用的链接。这正是我用来创建这些类的东西。我将你的JSON粘贴到网站上,它被“barfed”了。你用来创建类的JSON与你的问题不一样。为了简洁起见,这是一个糟糕的复制/粘贴工作。我编辑了这篇文章,加入了我使用的链接。这正是我用来创建这些类的东西。我将你的JSON粘贴到网站上,它被“barfed”了。你用来创建类的JSON与你的问题不一样。为了简洁起见,这是一个糟糕的复制/粘贴工作。我编辑了这篇文章,加入了我使用的链接。这正是我用来创建这些类的东西。我将你的JSON粘贴到网站上,它被“barfed”了。你用来创建类的JSON与你的问题不一样。为了简洁起见,这是一个糟糕的复制/粘贴工作。我编辑了帖子以包含我使用的链接。我编辑了帖子以包含指向我正在抓取的文件的链接。对我来说,这是一个草率的复制/粘贴工作。我编辑了这篇文章,以包含指向我正在抓取的文件的链接。对我来说,这是一个草率的复制/粘贴工作。我编辑了这篇文章,以包含指向我正在抓取的文件的链接。对我来说,这是一个草率的复制/粘贴工作。我编辑了这篇文章,以包含指向我正在抓取的文件的链接。那是我草率的复制/粘贴工作。谢谢你@Matt。现在,我们来谈谈清单吧。仅供参考:谢谢。我将遵循这一点。1)对C#进行建模,使其更接近JSON。不需要日期1,日期2,日期3,e