|   |   | 
| 
 | кто разбирается 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) Так же, как и Выполнить(). Но это мало кого останавливает. :)     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |