gpt4 book ai didi

mysql - 在groovy中编码(marshal)包含json字符串的mysql字符串列

转载 作者:行者123 更新时间:2023-12-02 14:39:04 32 4
gpt4 key购买 nike

我是groovy Grails的新手,并试图了解如何使用GORM

我们有带字符串类型的列的SQL表,其中包含代表某些对象的JSON字符串
(我不能替代数据库设计)

我了解在groovy中,模型对象表示SQL记录,通常,我们可以使用编码器将对象呈现为JSON

但是我需要获取,创建或保存具有Json字符串列的Model对象,该对象将以Groovy呈现给对象,但是找不到有关如何执行此操作的任何信息

例如,为简化起见,我将有下表:id(number),json(longstring)
并在JSON中:

{"name":"object1", "list":[{"item":"item1", "type":"type1"},{"item":""item2", "type":"type2"},..]}

及以下类(class):
class MainModelClass {
Long id
MyObject o
...

}

class MyObject {
List<Item> items
...
}

class Item {
String item
String type
...
}

如何使Model对象将JSON解析为Object结构

谢谢

最佳答案

您可以使用带有transient属性的简单技巧,如下所示:

import groovy.json.*

class MainModelClass {

String originalJson

static final JsonSlurper slurper = new JsonSlurper()

MyObject getMyObject(){
slurper.parseText( originalJson ) as MyObject
}

void setMyObject( MyObject myObject ){
originalJson = JsonOutput.toJson myObject
}

static transients = [ 'myObject' ]

}

您可能想使用Jackson Mapper更好地控制编码。

关于mysql - 在groovy中编码(marshal)包含json字符串的mysql字符串列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60204916/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com