Строка ввода неверна

Вот еще два примера.

Чтобы вывести день, месяц и год, вы можете использовать:

select STR_TO_DATE('14/02/2015', '%d/%m/%Y');

Что производит:

2015-02-14

Чтобы также вывести время, вы можете использовать:

select STR_TO_DATE('14/02/2017 23:38:12', '%d/%m/%Y %T');

Что производит:

] 2017-02-14 23:38:12

1
задан So_oP 13 July 2018 в 10:52
поделиться

3 ответа

вам нужно избежать символов {, используя string.Format(): вместо { использовать {{ вместо } использовать }}

Примечание: Это относится к { ], которые вы хотите отобразить в результирующей строке.

Кроме того, если вы пытаетесь создать JSON, я настоятельно рекомендую использовать JSON.Net и Serialize<> вместо того, чтобы делать это вручную это.

7
ответ дан GPW 17 August 2018 в 13:15
поделиться

Вы также можете использовать String-интерполяцию, эта функция доступна в C # 6 и более поздних версиях

string requestData = $"{{\"api_version\":{apiVersion},\"method\":\"{method}\",\"merchant_account\":\"{merchantAccount}\",\"merchant_password\":\"{merchantPassword}\",\"transaction_unique_id\":\"{transactionId}\",\"amount\":{amount},\"currency\":\"{currency}\",\"callback_url\":\"{callbackUrl}\",\"user_id\":\"{id}\",\"user_ip\":\"{ip}\",\"user_email\":\"{mail}\",\"card\":{{\"card_number\":\"{cardNumber}\"}}";
2
ответ дан Anant Dabhi 17 August 2018 в 13:15
поделиться
  • 1
    Как добавить еще одну закрытую скобку '}' в конце? Из-за того, что отсутствующая скобка, в конце концов, я ошибся json fromat – So_oP 13 July 2018 в 12:37
  • 2
    Вам нужно добавить еще один} (скобка) – Anant Dabhi 13 July 2018 в 12:39
  • 3
    Так я и сделал. И у меня есть еще одна ошибка, говорящая, что символ '}' должен быть экранирован путем удвоения в интерполированной строке, – So_oP 13 July 2018 в 12:40
  • 4
    на самом деле вам нужно добавить две}} скобки – Anant Dabhi 13 July 2018 в 12:43

Если каждый ожидаемый параметр является строкой, api-версия пропустила кавычки!

string requestData = string.Format("{{\"api_version\":\"{0}\",\"method\":\"{1}\",\"merchant_account\":\"{2}\",\"merchant_password\":\"{3}\",\"transaction_unique_id\":\"{4}\",\"amount\":{5},\"currency\":\"{6}\",\"callback_url\":\"{7}\",\"user_id\":\"{8}\",\"user_ip\":\"{9}\",\"user_email\":\"{10}\",\"card\":{{\"card_number\":\"{11}\"}}}}", apiVersion, method, merchantAccount, merchantPassword, transactionId, amount, currency, callbackUrl, id, ip, mail, cardNumber);

Редактировать: я не заметил отсутствующего double {}, когда вы используете строковый формат, вы должны удвоить каждый { или }, чтобы избежать его

1
ответ дан Marco Salerno 17 August 2018 в 13:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: