我想将json文件解析为对象,并将其保存到数据库中。我只是创建一个在grails控制台中运行的groovy脚本(在cmd行中输入grails console)。我没有创建grails应用程序或域类。在这个小脚本中,当我调用save时,我有
groovy.lang.MissingMethodException: No signature of method: Blog.save()
is applicable for argument types: () values: []
Possible solutions: wait(), any(), wait(long), isCase(java.lang.Object),
sleep(long), any(groovy.lang.Closure)
我错过了什么吗? 我也很困惑,如果我保存,是否会将数据保存到名为Blog的表中?我应该在这里建立任何数据库连接? (因为我grails域类,我们不需要。但是使用纯groovy它是不同的吗?)
非常感谢!
import grails.converters.*
import org.codehaus.groovy.grails.web.json.*;
class Blog {
String title
String body
static mapping = {
body type:"text"
attachment type:"text"
}
Blog(title,body,slug){
this.title = title
this.body=body
}
}
这里解析json
// parse json
List parsedList =JSON.parse(new FileInputStream("c:/ning-blogs.json"), "UTF-8")
def blogs = parsedList.collect {JSONObject jsonObject ->
new Blog(jsonObject.get("title"),jsonObject.get("description"),"N/A");
}
循环博客并保存每个对象
for (i in blogs){
// println i.title; I'll get the information needed.
i.save();
}
答案 0 :(得分:0)
我没有大量的grails经验,但是从一个快速的谷歌搜索看起来像一个类被视为模型类,它需要在正确的convention-package / dir或{{3 }} / legacy jar with hibernate mapping。因此,您的示例无法正常工作。为什么不在模型包中定义该模型?