一、要解决这个问题首先要知道json格式是什么?
JSON格式:
比如学生有学号,姓名,性别等。
用json表示则为:
{"studno":"11111","studname":"wwww","studsex":"男"}(各个字段都是字符型)
这代表一个学生的信息。
如果多个呢?
[{"studno":"122222","studname":"wwww","studsex":"男"},
{"studno":"11111","studname":"xxxx","studsex":"男"},
{"studno":"33333","studname":"ssss","studsex":"男"}]
这就是json格式。
二、那如何操作json格式的文件呢?
这个更简单了,说白了就是直接读写文件,再把读出来的文件内容格式化成json就可以了。
三、具体操作。
1.我有一个实体类,如下:
public class ElectSet {
public String xueqi;
public String xuenian;
public String startTime;
public String endTime;
public int menshu;
public String isReadDB;
//{"xueqi":,"xuenian":,"startTime":,"endTime":,"renshu":,"isReadDB":}
public String getXueqi() {
return xueqi;
}
public void setXueqi(String xueqi) {
this.xueqi = xueqi;
}
public String getXuenian() {
return xuenian;
}
public void setXuenian(String xuenian) {
this.xuenian = xuenian;
}
public String getStartTime() {
return startTime;
}
public void setStartTime(String startTime) {
this.startTime = startTime;
}
public String getEndTime() {
return endTime;
}
public void setEndTime(String endTime) {
this.endTime = endTime;
}
public int getMenshu() {
return menshu;
}
public void setMenshu(int menshu) {
this.menshu = menshu;
}
public String getIsReadDB() {
return isReadDB;
}
public void setIsReadDB(String isReadDB) {
this.isReadDB = isReadDB;
}
}
2.有一个json格式的文件,存的就是他的信息,如下
Sets.json:
{"xuenian":"2007-2008","xueqi":"1","startTime":"2009-07-19 08:30","endTime":"2009-07-22 18:00","menshu":"10","isReadDB":"Y"}
3.具体操作.
/*
* 取出文件内容,填充对象
*/
public ElectSet findElectSet(String path){
ElectSet electset=new ElectSet();
String sets=ReadFile(path);//获得json文件的内容
JSONObject jo=JSONObject.fromObject(sets);//格式化成json对象
//System.out.println("------------" jo);
//String name = jo.getString("xuenian");
//System.out.println(name);
electset.setXueqi(jo.getString("xueqi"));
electset.setXuenian(jo.getString("xuenian"));
electset.setStartTime(jo.getString("startTime"));
electset.setEndTime(jo.getString("endTime"));
electset.setMenshu(jo.getInt("menshu"));
electset.setIsReadDB(jo.getString("isReadDB"));
return electset;
}
//设置属性,并保存
public boolean setElect(String path,String sets){
try {
writeFile(path,sets);
return true;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}
}
//读文件,返回字符串
public String ReadFile(String path){
File file = new File(path);
BufferedReader reader = null;
String laststr = "";
try {
//System.out.println("以行为单位读取文件内容,一次读一整行:");
reader = new BufferedReader(new FileReader(file));
String tempString = null;
int line = 1;
//一次读入一行,直到读入null为文件结束
while ((tempString = reader.readLine()) != null) {
//显示行号
System.out.println("line " line ": " tempString);
laststr = laststr tempString;
line ;
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e1) {
}
}
}
return laststr;
}
//把json格式的字符串写到文件
public void writeFile(String filePath, String sets) throws IOException {
FileWriter fw = new FileWriter(filePath);
PrintWriter out = new PrintWriter(fw);
out.write(sets);
out.println();
fw.close();
out.close();
}
4.调用,使用(在网站的controller里调用的)
//取出json对象
public void GetElectSettings(HttpServletRequest request,
HttpServletResponse response) throws Exception {
ElectSet electset=new ElectSet();
String absPath = request.getRealPath("\");
String filePath = absPath "public\sets\electSets.json";
electset=businessService.findElectSets(filePath);//这里是调用,大家自己改改,我调用的业务层的。
JSONArray jsonItems = new JSONArray();
jsonItems.add(electset);
JSONObject jo=new JSONObject();
jo.put("data", jsonItems);
System.out.println(jo);
request.setCharacterEncoding("utf-8");
response.setContentType("application/json;charset=utf-8");
PrintWriter out = response.getWriter();
out.print(jo);
}
//修改json文件
public void ChangeElectSet(HttpServletRequest request,
HttpServletResponse response) throws Exception {
request.setCharacterEncoding("UTF-8");
response.setContentType("text/json;charset=utf-8");
log.info("reach ChangeElectSet");
String json = (String) request.getParameter("json").trim();
log.info("Change ElectSet");
log.info(json);
ElectSet sets = new ElectSet();
JSONObject jsonObject = JSONObject.fromObject(json);
sets = (ElectSet) JSONObject.toBean(jsonObject, ElectSet.class);
if(sets.getIsReadDB()=="false"){
sets.setIsReadDB("否");
}
else{
sets.setIsReadDB("是");
}
String changes="{"xuenian":"";//因为json的属性要用引号,所以要用"转义一下
changes =sets.getXuenian() "","xueqi":"" sets.getXueqi() "","startTime":"" sets.getStartTime() "","endTime":"" sets.getEndTime() "","menshu":"" sets.getMenshu() "","isReadDB":"" sets.getIsReadDB() ""}";
System.out.println(changes);
String absPath = request.getRealPath("\");
String filePath = absPath "public\sets\electSets.json";
- 浏览: 32438 次
- 性别:
- 来自: 广州
最新评论
-
dreamstoney:
[size=small][flash=200,200][img ...
JSON格式解析 .
相关推荐
Java 读写 JSON 格式的文件方法详解 本文主要讲解了如何在 Java 中读写 JSON 格式的文件,解决了在实际应用中常见的问题。首先,需要了解什么是 JSON 格式,JSON 格式是一种轻量级的数据交换格式,易于人类阅读和...
### Java遍历JSON树知识点详解 #### 一、前言 在处理Web应用程序中的数据时,JSON(JavaScript Object Notation)是一种非常常见的数据格式。它轻量级且易于读写,因此广泛应用于前后端的数据交互中。对于Java...
### Java反射机制实现JavaBean转JSON的详细解析 #### 一、引言 在现代软件开发过程中,数据格式转换是一项非常常见的任务。特别是在处理不同系统之间的数据交换时,JSON(JavaScript Object Notation)因其轻量级...
8. **流式API**:对于大量数据的处理,Gson提供了流式API,可以有效地读写JSON数据。 9. **序列化策略**:你可以通过`@JsonAdapter`注解,为特定字段或类型设置自定义的序列化和反序列化策略。 10. **安全性**:在...
- **配置文件**:在某些Java应用中,JSON可以作为配置文件的格式,便于读写和解析。 - **数据存储**:在本地存储少量数据时,JSON提供了一种轻量级的序列化和反序列化方式。 总之,`org.json.jar`包是Java开发者...
### JSON相关依赖包详解 #### 一、引言 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。在Java开发中,处理JSON数据...
首先定义一个类JSONParser.Java类,将json上传数据的方法封装好,可以直接在主程序中调用该类,代码如下 public class JSONParser { static InputStream is = null; static JSONObject jObj = null; static String ...
在Android应用程序开发中,与服务器进行数据交换是常见的需求,而JSON作为一种轻量级的数据交换格式,被广泛用于客户端和服务器之间的通信。本篇文章将详细介绍如何在Android应用中通过JSON解析来从MySQL数据库读取...
### Java NIO 处理超大数据文件的知识点详解 #### 一、Java NIO简介 Java NIO(New IO)是Java平台上的新输入/输出流API,它提供了与传统IO(即Java IO)不同的数据处理方式。NIO在Java 1.4版本引入,并在后续版本...
4. 异步非阻塞IO:Java NIO(New IO)提供了一种用于替代标准Java IO的新方法。NIO支持面向缓冲区的、基于通道的IO操作,可以非阻塞地读写数据。它非常适合于需要处理大量连接的场景,例如Web服务器或代理服务器。 ...
按字符读取文件主要用于处理文本文件,如纯文本、XML或JSON等格式的文件。主要使用`InputStreamReader`和`FileReader`类来实现: ```java public static void readFileByChars(String fileName) { File file = new...
这些API遵循HTTP方法(GET、POST、PUT、DELETE等),返回JSON或XML格式的数据。 8. **安全性**:音乐下载系统需要考虑版权问题和用户隐私。Java提供了SSL/TLS支持,可以加密传输数据,防止中间人攻击。同时,访问...
22. **`chmod 777 文件`**:修改文件权限,使其可读写执行。 23. **`ifconfig`**:管理网络接口。 #### 在一张网卡上绑定多个IP地址 在Linux系统中,可以通过`ifconfig`命令为网卡配置多个IP地址,例如: ```sh ...
### Python中的JSON读写方式与字典相互转化详解 #### 引言 在现代软件开发过程中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其易于阅读和编写,同时也易于机器解析和生成而受到广泛欢迎。...
- `json-lib-2.1-jdk15.jar`: JSON库,用于读写JSON格式的数据。 - `struts2-json-plugin-2.3.1.1.jar`: Struts2的JSON插件,用于处理JSON相关的请求和响应。 #### 2. 准备工作:搭建Struts2运行环境 - 创建一个...
例如,使用ArrayList存储图书对象,HashMap存储基于图书ID的图书信息,使用文件读写操作持久化数据,如XML或JSON格式,确保数据在程序重启后依然可恢复。 四、用户界面与控制层 系统通常包含用户界面,如命令行界面...
4. **数据解析**:QQ协议的数据可能包含二进制和文本格式,Java提供了诸如DataInputStream、DataOutputStream、BufferedReader、BufferedWriter等类用于读写数据,以及JSON库如Jackson或Gson进行JSON格式的解析。...