Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.11.2016, 16:44
Аспирант
Отправить личное сообщение для AleksSergSB Посмотреть профиль Найти все сообщения от AleksSergSB
 
Регистрация: 20.11.2016
Сообщений: 74

Отделить объект a.length от строкового операнда
Использую функцию eval(str), знать заранее где в объекте может быть length объект не могу.
Написан не совсем корректно Джейсон в котором есть элементы объекта *.length и значения числовые.
Можно ли как-нибудь заблокировать выполнения строковой операции *.length ?
Или принудительно выполнять обращения только как к объекту Length иначе ошибка?
Возможно есть иные решения.
Ответить с цитированием
  #2 (permalink)  
Старый 22.11.2016, 17:23
Аватар для Coriolan161
Профессор
Отправить личное сообщение для Coriolan161 Посмотреть профиль Найти все сообщения от Coriolan161
 
Регистрация: 21.11.2015
Сообщений: 440

AleksSergSB,
Пример покажи. Я visual lerner, а не парсер твоих предложений.
Ответить с цитированием
  #3 (permalink)  
Старый 22.11.2016, 17:30
Аспирант
Отправить личное сообщение для AleksSergSB Посмотреть профиль Найти все сообщения от AleksSergSB
 
Регистрация: 20.11.2016
Сообщений: 74

jsonss = {"bb":
        {"vn":"i", "vn1": "r"},
        "h":[
              {"h1":"11", "h2":"12","h3":"13"},
              {"h11":"22", "h22":"232","h33":"343"},
              {"h31":"252", "h32":"2532","h43":"343"},
            ],
        "length": 36,
        "rr": {"r1":"tes", "r2":"tes2"},   
        "mo": null,
        "leng":"2000"
    }
rez = jsonss.length // такой объект может существовать, а может нет!

объект length может придти, а может не придти. Вызываю функцией eval(), поэтому ищу метод отделить значение объекта от количества символов.
Ответить с цитированием
  #4 (permalink)  
Старый 23.11.2016, 00:33
Аватар для Coriolan161
Профессор
Отправить личное сообщение для Coriolan161 Посмотреть профиль Найти все сообщения от Coriolan161
 
Регистрация: 21.11.2015
Сообщений: 440

AleksSergSB,
Цитата:
объект length может придти, а может не придти
Это не объект, это свойство.

Короче выход такой
1) Берешь json и парсишь его
2) Тебе надо заменить свойство length на _length
3) Обратно это в json перегоняешь
4) зовешь свой eval
Ответить с цитированием
  #5 (permalink)  
Старый 23.11.2016, 17:46
Аспирант
Отправить личное сообщение для AleksSergSB Посмотреть профиль Найти все сообщения от AleksSergSB
 
Регистрация: 20.11.2016
Сообщений: 74

Сообщение от Coriolan161 Посмотреть сообщение
AleksSergSB,
Короче выход такой
1) Берешь json и парсишь его
2) Тебе надо заменить свойство length на _length
3) Обратно это в json перегоняешь
4) зовешь свой eval
Спасибо! Интересное решение. Заменить Length.
Я в другую сторону копал. А можно как-то присвоить значение свойству через eval? eval(str)="1"; потом соответственно ловить catch, если свойства такого нет. Метод универсальный и быстрее чем со строками работать. Можно как-то присвоить значение таким методом?
Ответить с цитированием
  #6 (permalink)  
Старый 23.11.2016, 18:34
Аватар для Coriolan161
Профессор
Отправить личное сообщение для Coriolan161 Посмотреть профиль Найти все сообщения от Coriolan161
 
Регистрация: 21.11.2015
Сообщений: 440

AleksSergSB,
Цитата:
Метод универсальный
Кто? eval? Забудь.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск