问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java读取json文件的问题

发布网友 发布时间:2022-04-23 02:45

我来回答

4个回答

热心网友 时间:2023-05-09 04:27

Java 读写json格式的文件方法:

一、要解决这个问题首先要知道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";

热心网友 时间:2023-05-09 04:28

<script type="text/javascript">
//JSON 取值
//len = json.length 获取JSON表达式[]中 {}项数。
//json[index].school_name 表示索引为index(从0开始)的“{}” 对象,school_name表示该对象的值
var json = school;
for (var index = 0, len = json.length; index < len; index++) {
var areaid = json[index].school_id; //学校编号
var schoolname = json[index].school_name; //学校名称
var zoneid = json[index].zone_id; //区域编号
var schoolx = json[index].school_x; //学校经度
var schooly = json[index].school_y; //学校纬度
var content = "学校编号:" + areaid + "|学校名称:" + schoolname + "|区域编号:" + zoneid +
"|学校经度:" + schoolx + "|学校纬度:" + schooly + "<br/>";
document.write(content);
}
</script>

这个可以 按你对应的json名和项值进行改动,输出。。。

热心网友 时间:2023-05-09 04:28

使用json RPC 即可

热心网友 时间:2023-05-09 04:29

这个我做过,可是我重装过系统了,不好测试。我可以给你解析json需要的jar包。其他的百度应该有的。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
小篇幅造句 易车如何发布二手车 转让卖车信息流程 《易车》群聊消息关闭方法 易车消息夜间勿扰方法步骤 易车如何开启消息夜间勿扰 易车 开启@消息推送 ...当入射角是 时,反射角是 。我们能从各个方向看到本身不发光的物体... 发泄的近义词和反义词是什么_发泄是什么意思? 我的世界手游 我的世界手机版怎么做末地传送门? 我的世界手游 末地传送门怎么做? 安全评价师的报考科目有什么 名侦探柯南黑寡妇事件多少集 java怎么读取文件中的json格式文件 江户川柯南是黑户,为什么可以上小学,坐飞机坐高铁? 别人的绑定我的银行卡对我有什么风险 java如何读取json中文件内容 名侦探柯南-黑衣组织出场集数 java类中怎么读取 json文件 用别人号码注册的如何绑定自己银行卡 java中如何读取json文件,在本地有E:/a.json文件,想读取这个json文件里 ... 用别人号码注册的如何绑定自己银行卡? 如果住宾馆不扫自己的行程码,身份证用自己的,行程码会有显示吗? 如果住宾馆不扫自己的行程码,身份证用自己的,行程码会有显示吗? 健康码备注一栏怎么写? 健康码备注一栏怎么写? 用别人号码注册的如何绑定自己银行卡? 公共场所的二维码怎样生成 公共场所的二维码怎样生成 校微行程码少上了一个怎么弄 校微行程码少上了一个怎么弄 行程卡超过20天怎么还没变? 不是自己的手机号码 注册的 怎么绑定银行卡? 名侦探柯南中与黑衣组织有关的所有集数 java读取json格式文件 存入数据库 名侦探柯南黑衣组织出场集数 原来不是自己的手机号申请的,现在是自己手机号,怎样邦定自己的银行卡? 名侦探柯南中,黑衣组织出现的都有哪几集? java怎么将json文件读取进来并转成map 名侦探柯南中,黑衣组织的boss是谁 就是用别人的手机号注册 可以绑定自己的银行卡吗? java中怎样读取一个json格式的文件然后返回一个对象 名侦探柯南“黑色冲击!组织魔爪伸来的瞬间“的剧情内容 用别人号码注册的如何绑定自己银行卡 名侦探柯南关于黑暗组织的集数 java后台怎样获取前台的json数据 《名侦探柯南》中黑衣组织的所有成员 名侦探柯南里的黑衣组织到底是什么人? 爱奇艺里的名侦探柯南中黑衣组织出现的都有哪几集 java怎么解析我这个json数据 名侦探柯南各人物与黑衣组织关系 《名侦探柯南》里面出现的所有黑衣组织成员的名字 是所有!!所有!!_百 ...