Имя: Пароль:
1C
 
кто разбирается JScript - подскажите что делает код
0 Джордж1
 
09.12.20
16:56
Код такой:

  | function parseJSON(strJSON) {
  |  var tmpFunc = (new Function('return('+strJSON+');'))();
  |  return(tmpFunc);
  | }


А вызывается так:

    _Ответ = scriptCtrl.run("parseJSON", Ответ );


Проблема в том что на WSH 5.7 он не работает, а на WSH 5.8 работает
1 Fram
 
09.12.20
17:02
Вроде по названию понятно, парсит json - строку в объект
2 Fram
 
09.12.20
17:03
Оригинальный способ ) не знал о таком
3 ДенисЧ
 
09.12.20
17:03
берёт жисон, делает вид, что это функция и вызывает оную.
Вроде как так.
4 Fram
 
09.12.20
17:05
(0) попробуй просто JSON.parse(strJSON)
5 Джордж1
 
09.12.20
17:07
(4)у меня 7-ка. нет там JSON
6 Джордж1
 
09.12.20
17:08
(1)А что есть "объект"?

Вот такую строку парсит в ничего "{"Command":"XReport","Error":"","Warning":"","Message":"","Status":0,"IdCommand":"","NumDevice":2}"
7 Fram
 
09.12.20
17:08
(5) это js, а не 1с
8 Джордж1
 
09.12.20
17:09
(7)чистый js работать с JSON не умеет
9 Fragster
 
гуру
09.12.20
17:09
(0) это бэкдор
10 Джордж1
 
09.12.20
17:11
(9)можно понять для чего.

Так бы и не обратил внимание, но на 7-ке и 10-ке все работает, а на WinXP уж нет
11 Fragster
 
гуру
09.12.20
17:17
(10) на клиенте для норм парсинга можно юзать поле html документа, на сервере - чтениеJSON. Нафиг юзать jscript - не знаю.
12 Джордж1
 
09.12.20
17:20
(11)1cv7
13 Fram
 
09.12.20
17:20
(6) предположу что com объект, но это не точно
14 Fram
 
09.12.20
17:21
(9) в принципе кроме объекта функция из (0) больше ничего не сможет вернуть
15 Fram
 
09.12.20
17:24
(14)+ или выполнить. Там же ещё один return внутри
16 Fragster
 
гуру
09.12.20
17:25
(14) может выполнить кучу интересного по дороге
17 mistеr
 
09.12.20
17:25
(2) Именно что "оригинальный". С него и начался JSON.
18 Fragster
 
гуру
09.12.20
17:26
strJSON = undefined && alert("hacked"
19 Fragster
 
гуру
09.12.20
17:27
скобку после undefined пропустил
20 Джордж1
 
09.12.20
17:27
Функция возвращает OLE.JScriptTypeInfo

Дальше идет разбор json в список значений
21 Джордж1
 
09.12.20
17:28
Как-то не хочется разбор json писать на 1С, но возможно придется
22 Garykom
 
гуру
09.12.20
17:30
(21) он давно написан, погугли
23 mistеr
 
09.12.20
17:30
(21) ЧтениеJSON
24 Джордж1
 
09.12.20
17:31
(22)да вот тот что нагуглил и работает через WSH.
(23)еще раз - у меня 7-ка!!!
25 Джордж1
 
09.12.20
17:33
преобразование СЗ в json - всего 50 строк кода.
26 Fragster
 
гуру
09.12.20
17:36
Если Json простой, то можно попробовать через СтрЗаменить и ЗначениеИзСтрокиВнутр
27 Вафель
 
09.12.20
17:36
формально функции я выполняет любой код.
а так строка жсон в жс это объект, то ее можно использовать доя парса жсон
28 Джордж1
 
09.12.20
17:39
(27)да вот не работает в WSH 5.7

Попробую на WnXP сам cscript.exe подменить более новой версии
29 Garykom
 
гуру
09.12.20
17:44
30 Garykom
 
гуру
09.12.20
17:44
(29)+ нашел под 8-ку и банально переписал под 7.7
31 mistеr
 
09.12.20
17:50
(28) Что говорит?
32 Джордж1
 
09.12.20
17:50
(31)что-то там про неправильную строку. нет под рукой WinXP
33 Джордж1
 
09.12.20
17:52
(29)спасибо
34 Джордж1
 
09.12.20
18:08
(29)Даже почти заработало. Надо только сделать что бы сразу в нужном формате возвращало значения
35 Волшебник
 
09.12.20
18:10
Это дыра в системе
36 mistеr
 
09.12.20
23:23
(35) Так же, как и Выполнить(). Но это мало кого останавливает. :)
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший