我需要在Eclipse项目中使用Ant来执行此操作:
读取一个JSON文件(位于我的Eclipse项目中),解析它,这样我就可以对其中的一个属性进行更改,最后将生成的JSON写回同一个文件。
这可能吗?我尝试过使用JavaScript的方法,但是如果没有指定绝对路径,我甚至无法访问该文件(我不想这样做,我更喜欢这是相对于Ant脚本的。)< / p>
提前致谢
答案 0 :(得分:0)
非常肯定这可以在Javascript中完成。对于操作文件,我的偏好是groovy ant task。
├── build.xml
└── demo.json
在运行构建之前
$ cat demo.json
{ "one": 1, "three": 3, "two": 2 }
运行构建后
$ cat demo.json
{
"four": 4,
"one": "uno",
"three": 3,
"two": 2
}
<project name="demo" default="edit-settings-file">
<property name="settings.file" location="demo.json"/>
<target name="edit-settings-file" depends="install-groovy">
<taskdef name="groovy" classname="org.codehaus.groovy.ant.Groovy"/>
<groovy>
import groovy.json.JsonSlurper
import groovy.json.JsonOutput
def file = new File(properties["settings.file"])
def demo
file.withReader {
demo = new JsonSlurper().parse(it)
}
demo.one = "uno"
demo.four = 4
file.withWriter {
it.write(JsonOutput.prettyPrint(JsonOutput.toJson(demo)))
}
</groovy>
</target>
<!--
===========
Build setup
===========
-->
<available classname="org.codehaus.groovy.ant.Groovy" property="groovy.installed"/>
<target name="install-groovy" unless="groovy.installed">
<mkdir dir="${user.home}/.ant/lib"/>
<get dest="${user.home}/.ant/lib/groovy.jar" src="http://search.maven.org/remotecontent?filepath=org/codehaus/groovy/groovy-all/2.3.9/groovy-all-2.3.9.jar"/>
<fail message="Groovy has been installed. Run the build again"/>
</target>
</project>