如何将json解析为c#并读取值

时间:2015-10-19 21:37:03

标签: c# json web-services parsing console-application

好吧,我需要从在线webservice解析JSON到c#。这是我第一次解析JSON,而且我在控制台应用程序方面还不是很好,所以我真的需要你的帮助。

在我解析JSON之后,我需要创建一个应用程序,它会响应"关闭"如果温度达到某个随机值(比方说150度)。

到目前为止,这是我的代码......

static void Main(string[] args)
    {
        WebClient webClient = new WebClient();
        var data = webClient.DownloadString("http://api.thingspeak.com/channels/135/feed.json");
        JObject o = JObject.Parse(data);
        Console.WriteLine("Channel: " + o["channel"]);
        Console.ReadLine();
    }

这就是我所展示的内容。

enter image description here

我不知道我是否做得对,但我确实显示了一些数据。关于如何继续的任何想法?

谢谢!

1 个答案:

答案 0 :(得分:1)

如果我转到http://api.thingspeak.com/channels/135/feed.json,这就是我得到的结果:

  

{ “信道”:{ “ID”:135, “姓名”: “温度计”, “描述”:“无线   室外温度计(Electric Imp,TI TMP102传感器,4 x AA Energizer   L91) “” 纬度 “:” 55.652072" , “经度”: “12.546301”, “field1的”: “温度”, “created_at”: “2011-02-23T22:43:37Z”, “的updated_at”:” 2015-10-19T22:40:08Z “ ”标高“: ”20米“, ”last_entry_id“:61335}, ”进料“:[{ ”created_at“: ”2015-10-18T22:50:09Z“,” entry_id “:61240”,FIELD1 “:” 6.8125 “},{” created_at “:” 2015-10-18T23:05:17Z”, “entry_id”:61241 “FIELD1”: “6.75”},

...

  

{ “created_at”: “2015-10-19T21:55:03Z”, “entry_id”:61332 “FIELD1”: “9.875”},{ “created_at”:“2015-10-19T22:10:04Z ”, “entry_id”:61333 “FIELD1”: “9.875”},{ “created_at”: “2015-10-19T22:25:06Z”, “entry_id”:61334 “FIELD1”: “9.875”},{ “created_at”: “2015-10-19T22:40:08Z”, “entry_id”:61335 “FIELD1”: “9.875”}]}

中间是其他值。 SHGetKnownFolderPath()部分是"Feeds"是温度的数组,因为"field1"就像传说中的一样。有一些带有时间戳的条目,给定一个ID,然后是一个我认为是温度的值。

因此,您必须转换"channel"的最后一个条目,然后您将拥有最新的温度,您仍需将其包装在计时器中,以便重复获取最新的读数并添加逻辑发送你想要的任何形式的警报。