Вход | Регистрация
 

кто разбирается JScript - подскажите что делает код

кто разбирается JScript - подскажите что делает код
Я
   Джордж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 работает
   Fram
 
1 - 09.12.20 - 17:02
Вроде по названию понятно, парсит json - строку в объект
   Fram
 
2 - 09.12.20 - 17:03
Оригинальный способ ) не знал о таком
   ДенисЧ
 
3 - 09.12.20 - 17:03
берёт жисон, делает вид, что это функция и вызывает оную.
Вроде как так.
   Fram
 
4 - 09.12.20 - 17:05
(0) попробуй просто JSON.parse(strJSON)
   Джордж1
 
5 - 09.12.20 - 17:07
(4)у меня 7-ка. нет там JSON
   Джордж1
 
6 - 09.12.20 - 17:08
(1)А что есть "объект"?
Вот такую строку парсит в ничего "{"Command":"XReport","Error":"","Warning":"","Message":"","Status":0,"IdCommand":"","NumDevice":2}"
   Fram
 
7 - 09.12.20 - 17:08
(5) это js, а не 1с
   Джордж1
 
8 - 09.12.20 - 17:09
(7)чистый js работать с JSON не умеет
   Fragster
 
9 - 09.12.20 - 17:09
(0) это бэкдор
   Джордж1
 
10 - 09.12.20 - 17:11
(9)можно понять для чего.

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

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

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


Список тем форума
 
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.