サーバー側アプリに Dart の一部があり、MySql によって配信されたマップを JSON 型の構造に変換して、これらのデータをクライアントに送信する方法がわかりません。
安全: Sql インジェクションの方法はありません。
簡単: 単純な連結を許可しない文字列区切り文字 (' または ") が文字列に含まれていることを考慮して、データを変換するためのわずか数行のコードです。
クライアントで JSON 文字列をデコードし、フォームに入力します。 . これはサーバー ルーチンです。
void handlePost(HttpRequest req) {
HttpResponse res = req.response;
req.listen((List<int> buffer) {
addCorsHeaders(res);
AsciiDecoder a = new AsciiDecoder();
String s = a.convert(buffer); // contains key data in JSON-string
Map data = JSON.decode(s);
if (data.containsKey("key")){
var r1 = data{"key"};
pool.query('select fi, la, age from person where keyT =' + r1).then((result) {
result.forEach((row) {
print("FirstName: ${row[0]}, lastName: ${row[1]}, Age: ${row[2]}");
closeRes(res, JSONdata);
});
});
}
else closeRes(res, "NOK missing key");
},
onError: printError);
}
私が書いた場所ではprint("FirstName: ${row[0]}, lastName: ${row[1]}, Age: ${row[2]}");
、MySql マップを何かに変換するコードを書き、それをクライアントで JSON 形式に変換できるようにしました。クライアントにはこれがあります:
void getDataFromServer(){
HttpRequest request = new HttpRequest(); // create a new XHR
request.onReadyStateChange.listen((_) {
if (request.readyState == HttpRequest.DONE &&
(request.status == 200 || request.status == 0)) {
extractJson(request.responseText); // output the response
}
});
request.open("POST", url, async: false);
request.send(jsonData); // POST string like: {"key":"12345"}
}
ハウツーを示すコード行を誰かに教えてもらえますか? または、実例のある記事を見せてください。Dartの最新バージョンを実行しています。
私は(15年間)VBasicでデスクトップアプリを書いていましたが、今は変換しようとしています。