解析json文件,在命令提示符中编译运行

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: 解析json文件,在命令提示符中编译运行

有一个电影评分的json文件,打开如图所示:

1ecd1b2606ed46e9956a89f231c9802c.png

现读取该文件内容,并按对象一条条显示。

具体代码实现:

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文件。

1ecd1b2606ed46e9956a89f231c9802c.png

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文件是放在一个包中,这个包名在程序中存在,故用包名的方式引用。


最后读取的结果:

1ecd1b2606ed46e9956a89f231c9802c.png

相关文章
|
2月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
87 2
|
4天前
|
人工智能 自然语言处理 Java
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
FastExcel 是一款基于 Java 的高性能 Excel 处理工具,专注于优化大规模数据处理,提供简洁易用的 API 和流式操作能力,支持从 EasyExcel 无缝迁移。
48 9
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
|
1天前
|
自然语言处理 文字识别 数据处理
多模态文件信息抽取:技术解析与实践评测!
在大数据和人工智能时代,企业和开发者面临的挑战是如何高效处理多模态数据(文本、图像、音频、视频)以快速提取有价值信息。传统方法效率低下,难以满足现代需求。本文将深度评测阿里云的多模态文件信息抽取解决方案,涵盖部署、应用、功能与性能,揭示其在复杂数据处理中的潜力。通过自然语言处理(NLP)、计算机视觉(CV)、语音识别(ASR)等技术,该方案助力企业挖掘多模态数据的价值,提升数据利用效率。
12 4
多模态文件信息抽取:技术解析与实践评测!
|
1天前
|
文字识别 自然语言处理 算法
从多模态到精准洞察:深度解析多模态文件信息提取解决方案!
阿里云推出《多模态数据信息提取》解决方案,涵盖文本、图像、音频、视频等多种数据形式的自动化处理。本文从部署体验、功能验证到实际应用,全面解析该方案的能力与潜力,帮助开发者高效提取和整合复杂数据,提升工作效率...
14 3
从多模态到精准洞察:深度解析多模态文件信息提取解决方案!
|
4天前
|
JSON JavaScript 前端开发
一次采集JSON解析错误的修复
两段采集来的JSON格式数据存在格式问题,直接使用PHP的`json_decode`会报错。解决思路包括:1) 手动格式化并逐行排查错误;2) 使用PHP-V8JS扩展在JavaScript环境中解析。具体方案一是通过正则表达式和字符串替换修复格式,方案二是利用V8Js引擎执行JS代码并返回JSON字符串,最终实现正确解析。 简介: 两段采集的JSON数据因掺杂JavaScript代码导致PHP解析失败。解决方案包括手动格式化修复和使用PHP-V8JS扩展在JavaScript环境中解析,确保JSON数据能被正确处理。
|
15天前
|
数据挖掘 vr&ar C++
让UE自动运行Python脚本:实现与实例解析
本文介绍如何配置Unreal Engine(UE)以自动运行Python脚本,提高开发效率。通过安装Python、配置UE环境及使用第三方插件,实现Python与UE的集成。结合蓝图和C++示例,展示自动化任务处理、关卡生成及数据分析等应用场景。
73 5
|
2月前
|
自然语言处理 编译器 Linux
|
2月前
|
消息中间件 存储 Java
RocketMQ文件刷盘机制深度解析与Java模拟实现
【11月更文挑战第22天】在现代分布式系统中,消息队列(Message Queue, MQ)作为一种重要的中间件,扮演着连接不同服务、实现异步通信和消息解耦的关键角色。Apache RocketMQ作为一款高性能的分布式消息中间件,广泛应用于实时数据流处理、日志流处理等场景。为了保证消息的可靠性,RocketMQ引入了一种称为“刷盘”的机制,将消息从内存写入到磁盘中,确保消息持久化。本文将从底层原理、业务场景、概念、功能点等方面深入解析RocketMQ的文件刷盘机制,并使用Java模拟实现类似的功能。
45 3
|
2月前
|
存储
文件太大不能拷贝到U盘怎么办?实用解决方案全解析
当我们试图将一个大文件拷贝到U盘时,却突然跳出提示“对于目标文件系统目标文件过大”。这种情况让人感到迷茫,尤其是在急需备份或传输数据的时候。那么,文件太大为什么会无法拷贝到U盘?又该如何解决?本文将详细分析这背后的原因,并提供几个实用的方法,帮助你顺利将文件传输到U盘。
|
2月前
|
自然语言处理 编译器 Linux
告别头文件,编译效率提升 42%!C++ Modules 实战解析 | 干货推荐
本文中,阿里云智能集团开发工程师李泽政以 Alinux 为操作环境,讲解模块相比传统头文件有哪些优势,并通过若干个例子,学习如何组织一个 C++ 模块工程并使用模块封装第三方库或是改造现有的项目。

推荐镜像

更多