gpt4 book ai didi

c# - 如何使用 webrequest 使用 Json 数组绘制折线图

转载 作者:可可西里 更新时间:2023-11-01 06:34:00 26 4
gpt4 key购买 nike

首先,我是 C# 和 Json 的新手。

我想在 C# GUI 中根据 mysql 表数据绘制图表。我制作了一个 PHP 文件来从 mysql 数据库表中选择数据,并使用 echo json_encode(array("result"=>$result))

在 json 数组中回显所选内容

这是我的 PHP:

<?php
define('HOST','*********************');
define('USER','*********************');
define('PASS','*********************');
define('DB','***********************');

if($_SERVER['REQUEST_METHOD']=='GET'){

$start = $_GET['start'];
$ending = $_GET['ending'];
}

$con = mysqli_connect(HOST,USER,PASS,DB);


$sql = "SELECT * FROM table WHERE date_time BETWEEN '$start' and '$ending'" ;
$res = mysqli_query($con,$sql);

$result = array();
while($row = mysqli_fetch_array($res)){
array_push($result,array('id'=>$row[0],'p_pairs'=>$row[1],'temp1'=>$row[2] ,'temp2'=>$row[3],'temp3'=>$row[4],'temp4'=>$row[5],'temp5'=>$row[6],'avg_current'=>$row[7],'avg_voltage'=>$row[8],'kw'=>$row[9],'kwh'=>$row[10]));
}

echo json_encode(array($result));

mysqli_close($con);

?>

使用链接,我可以清楚地看到日期时间间隔之间的 json 数组。我想要的只是绘制温度值(temp1、temp2、..)、p 对值和其他与 date_time 的图表线图读取历史数据。

当我访问 PHP 页面时,我得到的是:

[[{"id":"1","p_pairs":"0000-00-00 00:00:00","temp1":"2","temp2":"100","temp3":"100","temp4":"100","temp5":"100","avg_current":"100","avg_voltage":"300","kw":"300","kwh":"300"},{"id":"2","p_pairs":"0000-00-00 00:00:00","temp1":"45","temp2":"105","temp3":"230","temp4":"100","temp5":"2500","avg_current":"570","avg_voltage":"100","kw":"250","kwh":"1000"},{"id":"3","p_pairs":"2016-01-07 21:10:00","temp1":"45","temp2":"105","temp3":"230","temp4":"100","temp5":"2500","avg_current":"570","avg_voltage":"100","kw":"250","kwh":"1000"},{"id":"4","p_pairs":"2016-01-07 21:10:00","temp1":"45","temp2":"105","temp3":"230","temp4":"100","temp5":"2500","avg_current":"570","avg_voltage":"100","kw":"250","kwh":"1000"}]]

注意:一些日期时间在这里设置为默认值。我只是想展示这个数组。正确的将非常适合绘制图形。

我可以使用来自 C# 的 Web 请求将这些数组放入字符串中。使用下面的代码:

        System.Net.WebClient wc = new System.Net.WebClient();
byte[] raw = wc.DownloadData("url to php");

string webData = System.Text.Encoding.UTF8.GetString(raw);

如果有人可以帮助我将其绘制成折线图,如 date_time Vs temp1、temp2 或 p_pairs 以及 C# GUI 中的那样,那将是一个很大的帮助...

这对我来说是一个很大的帮助。提前致谢。

最佳答案

首先获取一个类来工作。您可以从 Json 动态创建一个类

如果您乐于依赖 System.Web.Helpers 程序集,那么您可以使用 Json 类:

dynamic data = Json.Decode(json);

它作为 .NET 4 框架的附加下载包含在 MVC 框架中。或者使用 NewtonSoft。

接下来得到一个图表组件:https://msdn.microsoft.com/en-us/library/dd489237.aspx并将您的数据绑定(bind)到图表

关于c# - 如何使用 webrequest 使用 Json 数组绘制折线图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34670851/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com