我已经习惯了Grails转换器,你可以将任何对象转换为JSON表示,就像这样(http://grails.org/Converters+Reference)
return foo as JSON
Run Code Online (Sandbox Code Playgroud)
但在简单的groovy中,我找不到一个简单的方法(http://groovy-lang.org/json.html)
JSONObject.fromObject(this)
Run Code Online (Sandbox Code Playgroud)
返回空的json字符串...
我错过了一个明显的Groovy转换器吗?或者我应该去杰克逊或gson图书馆?
Groovy中的Java 8 ::(双冒号运算符)相当于什么?
我试图在groovy中翻译这个例子https://github.com/bytefish/PgBulkInsert
但是映射部分与Java 8的工作方式不同:
public PersonBulkInserter() {
super("sample", "unit_test");
mapString("first_name", Person::getFirstName);
mapString("last_name", Person::getLastName);
mapDate("birth_date", Person::getBirthDate);
}
Run Code Online (Sandbox Code Playgroud) 我已经用 groovy http://www.infoq.com/news/2014/04/groovy-2.3-json阅读了有关 json 的新闻。所以我尝试使用本地方法来(反)序列化包含日期的 groovy bean。但是我在将 JsonOutput.toJson(object) 与 JsonObject.fromObject() 与 java.util.Date 一起使用时遇到了问题
String jsonDat a= groovy.json.JsonOutput.toJson(contact)
Contact reloadContact = new Contact(net.sf.json.JSONObject.fromObject(jsonData))
Run Code Online (Sandbox Code Playgroud)
在 groovy 2.3+ 中使用本机方法的正确方法是什么?
否则,我可以去另一个像 gson 这样的库(http://www.mkyong.com/java/how-do-convert-java-object-to-from-json-format-gson-api/)
package test
import groovy.json.JsonOutput
import net.sf.json.JSONObject
class JsonTest {
public static void main(String[] args) {
JsonTest test = new JsonTest()
test.serialization()
}
public void serialization(){
Contact contact = new Contact()
contact.name = 'John'
contact.registration = Date.parse('dd/MM/yyyy', '20/10/2011')
String jsonData = JsonOutput.toJson(contact)
println(jsonData)
Object object = JSONObject.fromObject(jsonData)
Contact reloadContact …Run Code Online (Sandbox Code Playgroud) 测试依赖于其他服务的Grails服务的最佳做法是什么?默认的mixin TestFor正确地注入了测试中的服务,例如:
@TestFor(TopService)
class TopServiceTests {
@Test
void testMethod() {
service.method()
}
}
Run Code Online (Sandbox Code Playgroud)
但是如果我的TopService(服务)实例依赖于另一个服务,比如InnerService:
class TopService {
def innerService
}
Run Code Online (Sandbox Code Playgroud)
innerService将不可用,依赖注入似乎不会填充此变量.我该怎么办?
我正在尝试在GORM中定义树结构.这是我的模型:
class Tree {
String name
Level rootLevel
static hasOne = [rootLevel: Level]
static hasMany = [levels: Level]
static mappedBy = [levels:"parentTree"]
}
class Level {
String name
Tree parentTree
Level parentLevel
Set<Level> subLevels
static belongsTo = [parentTree: Tree]
static hasMany = [subLevels: Level]
}
Run Code Online (Sandbox Code Playgroud)
插入似乎工作正常,但是当我无法加载具有多个级别和子级别的树时.我想我错过了关系中的一些东西: - 树应该引用rootLevel(以及可选的所有子级别) - 一个Level应该引用它的父级别,它的子级别和全局父树
你能指出我正确的方向来获得这样的树状结构吗?谢谢