如何在 grails 会话对象中对 json 进行操作
How to operate on json in grails session object
我想在会话对象中存储一个 json 对象 session.setAttribute("myjson",myjson)
我的json 的结构如下:
{ 'name':'john', age: 23}
{ 'name':'doe', age: 44}
..etc
我该怎么做以及如何稍后从 session.getAttribute('myjson')
中检索该对象并附加一个新值 {}
?
有很多方法可以做到这一点,但老实说,你需要问问自己"Is this really the right thing to do?"。为什么?因为在会话中存储任何东西应该是最后的手段,并且在必要时应该保持在最低限度。在任何 HTTP 环境中使用会话 会降低 性能并使您的应用程序更难以水平扩展。
牢记这一点,您始终可以使用 org.codehaus.groovy.grails.web.json.JSONObject
s 和 grails.converters.JSON
转换器来完成此操作。不过,使用 List
个 Map
可能更容易。
只是给出示例代码:
您可以使用评论中提到的地图列表。
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)
我想在会话对象中存储一个 json 对象 session.setAttribute("myjson",myjson)
我的json 的结构如下:
{ 'name':'john', age: 23}
{ 'name':'doe', age: 44}
..etc
我该怎么做以及如何稍后从 session.getAttribute('myjson')
中检索该对象并附加一个新值 {}
?
有很多方法可以做到这一点,但老实说,你需要问问自己"Is this really the right thing to do?"。为什么?因为在会话中存储任何东西应该是最后的手段,并且在必要时应该保持在最低限度。在任何 HTTP 环境中使用会话 会降低 性能并使您的应用程序更难以水平扩展。
牢记这一点,您始终可以使用 org.codehaus.groovy.grails.web.json.JSONObject
s 和 grails.converters.JSON
转换器来完成此操作。不过,使用 List
个 Map
可能更容易。
只是给出示例代码:
您可以使用评论中提到的地图列表。
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)