如何在grails会话对象中对json进行操作

时间:2015-02-27 14:29:17

标签: json grails groovy

我想在会话对象中存储一个json对象session.setAttribute("myjson",myjson)

myjson的结构如下:

{ 'name':'john', age: 23}
{ 'name':'doe', age: 44}
..etc

如何执行此操作以及如何在session.getAttribute('myjson')之后检索此对象并附加新值{}

2 个答案:

答案 0 :(得分:2)

有很多方法可以实现这一目标,但老实说,你需要问自己“这真的是正确的做法吗?”。为什么?因为在会话中存储任何内容应该是最后的手段,并且在必要时应该保持最低限度。在任何HTTP环境中使用会话会杀死性能,并使您的应用程序更难以横向扩展。

记住这一点,您始终可以使用org.codehaus.groovy.grails.web.json.JSONObjectgrails.converters.JSON转换器来完成此操作。但是,使用List Map可能更容易。

答案 1 :(得分:1)

只是提供示例代码:
您可以使用评论中提到的地图列表。

List<Map<String,Integer>> listInSesion = [] 
listInSession.add([ 'name':'john', age: 23])
listInSession.add([ 'name':'doe', age: 44])
.
.

session.setAttribute('listInSession',listInSession)

如果您从 HTTP 请求中获得 JSON ,则可以简单地说:

listInSession = request.JSON

获取列表并添加新列表:

listInSession = session.getAttribute('listInSession')
listInSession?.add([ 'name':'john', age: 23])
session.setAttribute('listInSession',listInSession)