2014-01-30 4 views
1

У меня есть часть Dart в моем приложении на стороне сервера, и я не знаю, как преобразовать карту, доставленную MySql в структуру типа JSON, чтобы отправить эти данные для клиента.
Безопасность: без возможности Sql-инъекции;
easy: всего несколько строк кода для преобразования данных, принимая во внимание, что строка содержит строковые разделители ('или "), которые не допускают простой concat.
На клиенте я декодирую строку JSON и заполнить форму это сервер рутина:.Безопасная и простая передача данных MySql от сервера к клиенту

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-something. На клиенте у меня есть:

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, пытаясь теперь конвертировать.

+0

Я думаю, что все, что вам нужно здесь, на StackOverflow. Просто используйте функцию поиска. «Дайте мне какой-то код», вопросы не соответствуют теме. –

+0

Если это так, перечитайте мой вопрос как: какая процедура DART может преобразовать карту MySql, возвращаемую SqlJocky, в карту Джейсона. – Martin

+0

Для безопасной передачи используйте SSL-шифрование. –

ответ

1

Нашел решение для кодирования JSON в stackoverflow. Задайте все поля в классе, который описывает таблицу sql, к результатам, полученным mySql и сериализуйте. Соедините все строки. Затем передайте строку клиенту.

В ожидании ответа от Навафом Alsulami для инъекционной части вопроса

Смежные вопросы