【发布时间】:2016-08-10 14:20:13
【问题描述】:
我有一个简单的按钮,它运行一个脚本来从 40 个表中提取数据,在 php 中这些表是用 JSON 编码的。
$stmt = $pdo->prepare("SELECT* FROM form");
$stmt->execute();
$results=$stmt->fetchAll(PDO::FETCH_ASSOC);
$form=$results;
$stmt = $pdo->prepare("SELECT * FROM applicant");
$stmt->execute();
$results=$stmt->fetchAll(PDO::FETCH_ASSOC);
$applicant=$results;
print json_encode(array($form,$applicant));
我没有使用 select * 它只是为了便于阅读。这显示为数组很好,但是当我将数组拉入 C# 时,这是作为字符串完成的,我如何将数组从 php 传递到 c#?
WebClient wc = new WebClient();
var json = wc.DownloadString("http://localhost/returnData.php");
List<Applicant> app = JsonConvert.DeserializeObject<List<Applicant>>(json);
List <form> form = JsonConvert.DeserializeObject<List<form>>(json);
dataGrid.ItemsSource = form;
dataGrid2.ItemsSource = app;
想法 1 这可能是不好的做法,但我可以为每个表运行一个脚本,然后单独返回每个 JSON 对象吗?我知道这会起作用,但这会导致性能沉重并且必须创建多个脚本。
[{"id":"1","name_id":"0","first":"advert","last":"","address":"","postcode":"2","date_created":"2016-08-09 15:50:12"},{"id":"2","name_id":"0","first":"advert","last":"","address":"","postcode":"2","date_created":"2016-08-09 16:25:04"}]
想法 2
我可以创建一个脚本,但用分隔符返回所有脚本。例如print $form."^".$app; 然后将它们拆分为 C# 中的数组?
想法 3 理想情况下,我想将 json 数组的数组传递给 c#。
【问题讨论】: