2012-01-11 2 views
2

Я использую struts 2 и шаблоны скорости для генерации ответа JSON. Теперь улов - это ответ, который не генерируется с использованием некоторого плагина JSON скорости , это просто строка, которая выходит, когда скорость выполняется с его разбором и рендерингом ответа , а на стороне клиента я делаю eval, чтобы получить ответ от строка в JSON.Преобразование реакции скорости на JSON

Что мне действительно нужно - это решение на стороне скорости или стойки, где, когда результат получается , сгенерированный с помощью скорости, фреймворк должен вызывать мой API, где я могу преобразовать вывод ответа vm-файла в JSON, используя мою собственную логику , Как достичь этого?

Например:

  1. На браузере с помощью JavaScript Я разработал дерево виджет, который я использую для отображения комментариев в древовидной структуре.
  2. Скажите, что пользователь нажимает кнопку комментариев.
  3. Мой виджет пользовательского интерфейса запускает AJAX для получения данных для комментариев.
  4. Этот запрос перехвачен картой STRUTS 2.
  5. Он будет вызывать, скажем, getComments() action API и заполняет массивList объектом комментария say cmt.
  6. Теперь отклик обрабатывается шаблоном скорости (*. Vm).
  7. Сейчас в виртуальной машине я пишу такой код:

    { "CommentsData" : [ 
    
        #set($sep="") 
        #foreach($c in $cmt) 
        $sep 
        { 
         "commentText" : $c.getText() 
        } 
        #set($sep=",") 
        #end 
    
    } 
    
  8. Теперь окончательный ответ может получиться так:

    { "CommentsData" : [ 
    
        { 
         "commentText" : "This is comment 1" 
        }, 
        { 
         "commentText" : "This is comment 2" 
        }, 
        { 
         "commentText" : "This is comment 3" 
        }, 
        { 
         "commentText" : "This is comment 4" 
        }` 
    
        ] 
    } 
    
  9. Теперь это может выглядеть как JSON, но его не строгий JSON; Я имею в виду, если я пропущу примерно , где-то тогда на стороне клиента в JavaScript мой может закончиться ошибкой, или JSON.parse() проиграет, но по шаблону скорости я теперь понял, если JSON искажен.

  10. Итак, как только будет сформирован вышеуказанный шаблон скорости, мне нужно некоторое управление, где я могу написать код Java, чтобы сделать некоторые проверки на ответ.

Я вижу, что мой подход к использованию шаблона скорости для генерации вывода JSON (actully a String, который похож на JSON) может быть неправильным. Но все же мне нужно обработать ответ каждого шаблона скорости, который я написал.

+0

Если вы выводите JSON, нет необходимости в шаблонизации (скорости). Возможно, вы используете скорость, отличную от меня, но я не вижу, как шаблон будет полезен при выводе json. Пример того, что вы делаете, прояснит ситуацию –

+0

, довольно запутанную для меня. Что вы делаете с VM.as, это что-то временное, с помощью полной помощи пользователя Engine.a для получения некоторых входов –

+0

Это плохое использование для шаблонов, это запутанный код ошибки. Вам не нужно создавать JSON.Просто используйте библиотеку JSON для генерации вывода. –

ответ

1

Не знаете, как вы используете скорость. Мы не используем скорость при выводе JSON; мы просто создаем конвертируемый объект JSON и выводим его непосредственно из контроллеров, используя response.write(jsonObject.toJson()). Таким образом, правильный JSON всегда генерируется.

+0

благодарит за быстрые ответы парни, – jsDebugger

Смежные вопросы