有一个电影评分的json文件,打开如图所示:
现读取该文件内容,并按对象一条条显示。
具体代码实现:
package json.rate.pars; /** 定义一个类用来描述电影评分的一些属性 **/ public class MovieRate { private String movie; private String rate; private String timeStamp; private String uid; //方便打印生成一个tostring public String toString() { return "MovieRate [movie=" + movie + ", rate=" + rate + ", timeStamp=" + timeStamp + ", uid=" + uid + "]";
package json.rate.pars; import com.google.gson.Gson; public class MovieLogRatePars { /** * 读取json文件中的一行,解析成对象 * @param line * @return */ public static MovieRate parsLine(String line){ //调用Google的一个jar包 Gson gson = new Gson(); MovieRate fromJson = (MovieRate) gson.fromJson(line, MovieRate.class); return fromJson; }
package json.rate.pars; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.InputStreamReader; public class Test { public static void main(String[] args) throws Exception { //读取rating.json文件,读文件用BufferedReader()最方便,帶一個緩存 //InputStreamReader()是將字節轉換成字符的转换流 BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream("d:/rating.json"))); int i=0; while(i<100){ String line = reader.readLine(); MovieRate parsLine = new MovieLogRatePars().parsLine(line); System.out.println(parsLine); i++; } }
总共3个java文件,放在一个路径下。
文件的路径是:jsonDemo\src\json\rate\pars\
jar包的路径是:jsonDemo\src\
在命令提示符中编译文件:
在文件根目录下输入该命令,-cp lib\gson-2.8.0.jar 代表找寻jar包的位置,然后编译子目录下的所有java文件。
javac -cp lib\gson-2.8.0.jar src\json\rate\pars\*.java
然后进入scr目录下运行编译好的主程序文件:
java -cp .;gson-2.8.0.jar json.rate.pars.Test
-cp .;gson-2.8.0.jar中的点代表在当前目录下找class文件,分号代表在同时在gson-2.8.0.jar包中找class文件。
json.rate.pars.Test 这里不再用目录方式写,是因为Test文件是放在一个包中,这个包名在程序中存在,故用包名的方式引用。
最后读取的结果: