Показать сообщение отдельно
Старый 20.09.2012, 21:53   #5
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: И снова о Monkey. Ставим точки над "И"

Вот задумываюсь о JSON'е, как в Monkey реализовать удобную работу с ним..
JSON в html5 сразу в "готовеньком" виде, например:
var data = {
    
"coords": [
        { 
"x"1
        
"y"}
      , { 
"x"4
        
"y"}
      , { 
"x"3
        
"y"} ]
  , 
"entities": {
        
"4": { "name""test"
             
"type"}
      , 
"7": { "name""testB"
             
"type"} }
  , 
"type""state"

В JS, очень просто получить доступ к любому данному, или запустить цикл по key>value массивам, или по просто массиву объектов.

Я могу написать модуль которые будет пробегаться по элементам и их парсить.
Основной вопрос, это как сделать удобно в Monkey, интерфейс по доступу к данным.
В JS доступ к типу энтитя под key = 7, будет таким:
data['entities']['7']['type'
Или ещё "красивее":
data.entities['7'].type 
Можно как удобно либо через точку, либо как с массивом.

В Monkey, я как понимаю будет что-то типо объектов/контейнеров, которые могут иметь список детей, либо иметь значение.
Через интерфейсы можно реализовать разные элементы исходя из типа данных, и реализовать циклы. Monkey даст такую возможность?

В пользовании хотя бы так:
value = data.g("entities").g("7").g("type").g()
g - функция "get", по сути возвращает исходя из типа объекта, это может быть такой же объект/контейнер, или чистое данное.
Выглядит конечно в кучу раз хуже..
Можно правда сделать просто публичное поле у объекта, но ведь поле имеет не определённый тип данных. Это может быть контейнер, или значение. Как тут быть?
Пока раздумываю на работе, домой приду, буду эксперементировать конечно.

Моя идея, это построить модуль для работы с nodejs модулем socket.io, для html5 платформы, чтобы можно было обмениваться json данными, т.к. это самый удобный формат по работе с данными по сети, который я когда либо встречал. По крайней мере с nodejs это просто сказка.

В общем, какие есть идеи в реализации, и главное, как это будет в пользовании?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
LLI.T.A.L.K.E.R. (20.09.2012)