Стартовая страница › Форумы › Разработка и интеграция › Json интеграция с RS
Помечено: json
- В этой теме 5 ответов, 3 участника, последнее обновление 6 лет, 3 месяца назад сделано
Mikhail.
-
АвторЗаписи
-
24.03.2016 в 09:14 #1852
Kazam
УчастникДобрый день! Продолжая поддерживать проект на RS, решил поделиться некоторыми наработками по интеграции.
Командой RS разработан модуль экспорта в SQL, который работает отлично на небольшом количестве каналов.
Однако при увеличении их числа (в моем случае 8 000), MySQL не всегда успевает обрабатывать такое количество INSERT, да и сам сервер RS не всегда за цикл успевает сформировать команду на вставку в базу.
(да можно настроить MySQL сервер, но тренды не всегда должны быть быстродоступны).Предлагаю на суд метод WebService для получения тренда канала в формате JSON для сторонних систем.
/// <summary> /// Получить trend по CnlNum и DateTime /// </summary> [WebMethod] [ScriptMethod(ResponseFormat = ResponseFormat.Json)] public void ReceiveTrend(int cnlNum, string dt) { MainData MD = new MainData(); MD.SettingsFileName = "CommSettings.xml"; MD.RefreshData(); Trend tr = new Trend(cnlNum); MD.ServerComm.ReceiveTrend("Trend", Convert.ToDateTime(dt), tr); MD.ServerComm.Close(); this.Context.Response.ContentType = "application/json; charset=utf-8"; this.Context.Response.Write(new JavaScriptSerializer().Serialize(tr.Points)); }В ответ получим:
[
{
DateTime: «/Date(1455130800000)/»,
Val: 67.77223205566406,
Stat: 13
},
{
DateTime: «/Date(1455131400000)/»,
Val: 65.7049331665039,
Stat: 13
}
]/Date(1455131400000)/ — таким образом в .Net сериализация Даты для передачи в JSON, штатными методами.
В своем проекте читаемую дату я получаю, так :
function (obj) {
var date = moment(obj.Date);
return date.format(«DD.MM.YYYY HH:mm»);
}
В примере использую отличный Framework Moment.jsНадеюсь эта информация сэкономит кому-нибудь время.
11.05.2020 в 02:11 #15974Andrey2019
УчастникДоброй ночи.Как я понял из вашего поста данный код позволяет расширить JavaScriptAPI, пример которго Михаил выложил тут. Подскажите в какой файл нужно добавить это код? Спасибо.
12.05.2020 в 09:41 #15992
MikhailМодераторДобрый день!
Спасибо за метод. Насколько я понимаю, потребуется создать своё небольшое веб-приложение на .NET, чтобы положить туда этот метод.12.05.2020 в 13:56 #15998Andrey2019
УчастникЕсли я вас правильно понял то веб-приложение .NET — WCF?
12.05.2020 в 18:15 #15999
MikhailМодераторКод похож на WCF, но лучше пусть автор метода напишет.
12.05.2020 в 18:16 #16000
MikhailМодераторЕщё можно посмотреть в качестве примера GrafanaDataProvider. Здесь используется .NET WebApi на основе MVC, а не WCF.
-
АвторЗаписи
- Для ответа в этой теме необходимо авторизоваться.