|
Аналог функции json_decode в 1с для декодирования строки (escape) | ☑ | ||
---|---|---|---|---|
0
adelaide
13.06.14
✎
12:06
|
Работаю с Web API одного поставщика, результат возвращается в JSON, текст закодирован (escape) мне его надо раскодировать в 1С, в пхп это функция json_decode(), какой аналог есть в 1С?
|
|||
1
shuhard
13.06.14
✎
12:10
|
(0) нет
1С таких слов не знает |
|||
2
Рэйв
13.06.14
✎
12:10
|
Есть такой аналог
ТвояФункцияПоДекодированиюJSON() и ее тебе придется написать самому. |
|||
3
adelaide
13.06.14
✎
12:26
|
Может кому пригодится:
UnicodeEncode(Строка) /////////////////////////РАБОТА С JSON ////////////////////////////////////////// //Функция декодирует полученный unicod текст // в привычный нам //Параметры: // Строка //Возвращаемое значение: // Строка Функция UnicodeEncode(Строка) Экспорт Результат = ""; Попытка //регулярное выражение Рег = Новый COMОбъект("VBScript.RegExp"); Рег.IgnoreCase = Истина; Рег.Global = Истина; Рег.Multiline = Ложь; Рег.Pattern = "u[0-9a-f]+"; Колекция = Рег.Execute(Строка); Для Каждого Элемент Из Колекция Цикл Если СтрДЛина(Элемент.value) = 1 Тогда Продолжить; КонецЕсли; КодСимвола = ПереводЧислаИз16в10(Сред(ВРег(Элемент.value), 2)); Символ = Символ(КодСимвола); Строка = СтрЗаменить(Строка, "\" + Элемент.value, Символ); КонецЦикла; Результат = Строка; Исключение Результат = ""; Сообщить("Ошибка преобразования из Unicode", СтатусСообщения.Информация); КонецПопытки; Возврат Результат; КонецФункции Функция ПереводЧислаИз16в10(Знач Значение) Результат = 0; //перевод значения в строку Если ТипЗнч(Значение) <> Тип("Строка") Тогда Значение = СокрЛП(Строка(Значение)); КонецЕсли; МаксРазрядЦелых = 0; МаксРазрядЦелых = СтрДлина(Значение) - 1; н = МаксРазрядЦелых; Ин = 1; Пока н >= 0 Цикл ТекЗначение = СтруктураЧисел.Получить(Сред(Значение, Ин, 1)) * Pow(16, н); Результат = Результат + ТекЗначение; н = н - 1; Ин = Ин + 1; КонецЦикла; Возврат Результат; КонецФункции СтруктураЧисел = Новый Соответствие; СтруктураЧисел.Вставить("0", 0); СтруктураЧисел.Вставить("1", 1); СтруктураЧисел.Вставить("2", 2); СтруктураЧисел.Вставить("3", 3); СтруктураЧисел.Вставить("4", 4); СтруктураЧисел.Вставить("5", 5); СтруктураЧисел.Вставить("6", 6); СтруктураЧисел.Вставить("7", 7); СтруктураЧисел.Вставить("8", 8); СтруктураЧисел.Вставить("9", 9); СтруктураЧисел.Вставить("A", 10); СтруктураЧисел.Вставить("B", 11); СтруктураЧисел.Вставить("C", 12); СтруктураЧисел.Вставить("D", 13); СтруктураЧисел.Вставить("E", 14); СтруктураЧисел.Вставить("F", 15); |
|||
4
Asmody
13.06.14
✎
13:37
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |