好吧,我需要从在线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();
}
这就是我所展示的内容。
我不知道我是否做得对,但我确实显示了一些数据。关于如何继续的任何想法?
谢谢!
答案 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"
的最后一个条目,然后您将拥有最新的温度,您仍需将其包装在计时器中,以便重复获取最新的读数并添加逻辑发送你想要的任何形式的警报。