日期:2014-05-17  浏览次数:21066 次

怎么用java程序读取js文件并修改属性的值
这个是js文件的内容MapData = {
name :"城市",
shadow:"2222",
slider:"3333",
data : [
{
name:"1",
key:"1",
path:"4421",

},{
name:"2",
key:"2",
path:"3",
},
{
name:"3",
key:"3",
path:"5566",
}
]
};

------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

嗯,是的。根据name的值来判断,然后修改path的值。还是这个js文件不动

也就是改变属性后,要重新将这个json对象的内容再保存到js文件中,如果是这样的话,用jdk1.6的脚本引擎不够的,因为脚本引擎虽然可以改变和设置json对象但是输出是个问题,你必须要自己把这个json对象以递归的方式变成key:value的内容输出这个太费事了。使用json-lib。先把你js文件的内容全部读进来装成String,利用JSONObject进行操作,最后输出JSONObject到js文件就可以了

//第一步先读入js中所有的内容放到String中
BufferedReader reader=new BufferedReader(new FileReader(你的js文件));
StringBuilder sb=new StringBuilder();
String line=null;
while((line=reader.readLine())!=null){
//把换行符去掉
  sb.append(line);
}
reader.close();
//第二步把这个sb里面的真正的json内容拿到也就是从第一个"{"到最后一个"}"包括这两个{};
//这个是我们要的
String jsonString=sb.substring(sb.indexOf("{"),sb.lastIndexOf("}")+1);
//接下来给他转换成json-lib里的JSONObject对象
JSONObject jo=JSONObject.fromObject(jsonString);
//接下来你要获得那个属性就用jo.get(String key);
//修改属性使用jo.accumulate(String key,Object value);
更多的使用可以直接google json-lib的使用例子很多
修改完了
直接将这个jo输出到文件中
FileWriter writer=new FileWriter(js文件);
writer.write(jo.toString());
writer.flush();
writer.close();

多谢指教,第一次接触这个东西。脑袋有点大,能给个具体的实例看一下么?还在学习中。。。

上面的 例子就可以啊 。
把你的数据再写进去。
------解决方案--------------------
引用:
多谢指教,第一次接触这个东西。脑袋有点大,能给个具体的实例看一下么?还在学习中。。。

我上面那个就已经是实例了,除了你的业务逻辑之外,读取写入更改属性都有了,你自己的业务逻辑肯定要你自己写的,我并不知道你要拿什么属性更改什么属性。上面我已经注释的很清楚了拿属性用get(String key),修改属性用accumulate(String key,Object value);更多的API自己可以google json-lib的使用。别想着别人帮你完成你的业务处理,你的数据是什么,业务是怎么处理别人不会知道的,别人给你的就是思路和例子,楼主要举一反三。遇到第三方的jar使用,api就要google去。