1

サーバー側アプリに 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でデスクトップアプリを書いていましたが、今は変換しようとしています。

4

1 に答える 1