在 Groovy 中从 txt 文件中读取 JSON 对象
Posted
技术标签:
【中文标题】在 Groovy 中从 txt 文件中读取 JSON 对象【英文标题】:Reading JSON object from txt file in Groovy 【发布时间】:2013-10-31 14:54:55 【问题描述】:我正在尝试从 txt 文件中收集 JSON。但我下面的代码似乎一直给我“nullPointerException”。
File f = new File(tempDir+File.separator+'jsonObject.txt')
if (f)
log.error " file exists $f"
FileReader f2 = new FileReader(f);
log.error " file data- $f2"
if (f2 == null)
//do something
else
JsonSlurper jsonParser = new JsonSlurper();
game = jsonParser.parse(new FileReader(f));
找到解决方案 读取一个json txt文件:
File f = new File(tempDir+File.separator+'jsonObject.txt')
def slurper = new JsonSlurper()
def jsonText = f.getText()
json = slurper.parseText( jsonText )
将 json 写入文件:
File g = new File(tempDir+File.separator+'jsonObject.txt')
g.createNewFile()
def json = new JsonBuilder()
json
"result" result
g.setText(json.toString())
【问题讨论】:
在哪里抛出空指针?您可能还想看看我在阅读文本文件时问过的这个问题***.com/questions/15389329/… “game = ...”行开头的空指针异常 问题已使用替代代码解决 对于任何关注此的人,您不需要按照这里的解决方案所说的那样做,您可以从阅读器中读取,并且可以通过new File( f ).text = new JsonBuilder( [ result: result ] )
来完成写入比上面的7行
【参考方案1】:
请试试这个:
import groovy.json.JsonSlurper
def inputFile = new File("D:\\yourPath\\json.txt")
def InputJSON = new JsonSlurper().parseText(inputFile.text)
InputJSON.each println it
【讨论】:
使用此解决方案,我不断收到 java.io.FileNotFoundException: 并意识到我需要将new File
更改为 readFile
,如下所述:***.com/a/52752719/4535181 和这里***.com/a/38679858/4535181 另外,我必须删除对inputFile
的 text 属性的调用【参考方案2】:
尝试:
File f = new File( tempDir, 'jsonObject.txt' )
if( f.exists() )
def game = f.withReader r ->
new JsonSlurper().parse( r )
println game
【讨论】:
我完全使用了你的代码,但它在 JsonSlurper 行显示“nullPointerException”错误... 您可以将实际的堆栈跟踪添加到问题中吗?【参考方案3】:尝试简单优化的解决方案:
import groovy.json.JsonSlurper
try
File inputFile = new File("your_file_path")
def slurper = new JsonSlurper()
def data = slurper.parse(inputFile)
catch (Exception e)
e.printStackTrace()
【讨论】:
【参考方案4】:parseFile 可以将文件作为输入:
import groovy.json.JsonSlurper
def inputFile = new File("/your/path/my.json")
def InputJSON = new JsonSlurper().parseFile(inputFile, 'UTF-8')
InputJSON.each println it
【讨论】:
public Object parse(File file)
自 2.2.0 版起在 JsonSlurper 中可用 - 请参阅 groovy docs以上是关于在 Groovy 中从 txt 文件中读取 JSON 对象的主要内容,如果未能解决你的问题,请参考以下文章