我想在会话对象中存储一个json对象session.setAttribute("myjson",myjson)
myjson的结构如下:
{ 'name':'john', age: 23}
{ 'name':'doe', age: 44}
..etc
如何执行此操作以及如何在session.getAttribute('myjson')
之后检索此对象并附加新值{}
?
答案 0 :(得分:2)
有很多方法可以实现这一目标,但老实说,你需要问自己“这真的是正确的做法吗?”。为什么?因为在会话中存储任何内容应该是最后的手段,并且在必要时应该保持最低限度。在任何HTTP环境中使用会话会杀死性能,并使您的应用程序更难以横向扩展。
记住这一点,您始终可以使用org.codehaus.groovy.grails.web.json.JSONObject
和grails.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)