java写入json文件

| 留学生招聘 |

【www.guakaob.com--留学生招聘】

篇一:《Java 读写json格式的文件方法详解》

Java 读写json格式的文件方法详解

2010-09-19 10:57:45 我来说两句

收藏 我要投稿 [字体:小 大]

一、要解决这个问题首先要知道json格式是什么?

JSON格式:

比如学生有学号,姓名,性别等。

用json表示则为:

{"studno":"11111","studname":"

这代表一个学生的信息。

如果多个呢?

[{"studno":"122222","studname":"

{"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);java写入json文件

//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 {java写入json文件

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);

篇二:《java读取本地json文件》

Json文件保存在本地硬盘:(如:E\work\json\xx.json)java写入json文件

格式如下:

"A":[

{"name":"xx","sex":"0"}

],

"B":[java写入json文件

{"address":"xx","phone":"xx"},

{"address":"xx","phone":"xx"},

{"address":"xx","phone":"xx"}

] ,

"C":[

{"cd":"xx","ph":"xx"},

{"cd":"xx","ph":"xx"},

{"cd":"xx","ph":"xx"}

]

要怎么读取Json文件中的数据?A类里面存的是一个Dto对象、B和C都是List集合 求解···

//saveJsonFile("E:\\yindd\\slaughter.json");

//json文件存放路径(如:F:\cctv.json)

String data= ReadFile.readFile("F:\\cctv.json");

System.out.println(data);

JSONObject jsonObj = JSONObject.fromObject(data);

//得到A对象

JSONArray arrayA=jsonObj.getJSONArray("A");

A a = (A) JSONObject.toBean((JSONArray.fromObject(arrayA.toString()).getJSONObject(0)),A.class);

//得到B集合

JSONArray arrayB=jsonObj.getJSONArray("B");

List<B> listB=new ArrayList<B>();

for(int i=0;i<arrayB.size();i++){

B b=(B)JSONObject.toBean((JSONArray.fromObject(arrayB.toString()).getJSONObject(i)),

B.class);

listB.add(b);

}

//得到C集合

JSONArray arrayC=jsonObj.getJSONArray("C");

List<C> listC=new ArrayList<C>();

for(int i=0;i<arrayB.size();i++){

C c=(C)JSONObject.toBean((JSONArray.fromObject(arrayC.toString()).getJSONObject(i)),

C.class);

listB.add(c);

}

篇三:《java处理JSON格式数据的通用类》

java处理JSON格式数据的通用类-每天进步一点点-我的搜狐

一个java处理JSON格式数据的通用类

分类:JSON

2013-04-27 18:00 阅读(19)评论(0)

原始的json方法

response.setContentType("text/html;charset=UTF-8"); response.setHeader("Cache-Control","no-cache");

JSONObject json = new JSONObject();//用于存放最后返回的json变量 JSONArray jsonal = new JSONArray();//用于存放json的列表

JSONObject jsonobj = new JSONObject();//用于存放列表中的单条数据 try{

回输出

}catch(Exception e){

}

response.getWriter().write(json.toString());//把json值输出 返回到页面上 这里是字符串的形式 我前台是用js接收来解析的

别人写的工具类: e.printStackTrace(); for(int i=0;i<10;i++){ } json.put("list", jsonal);//把这个列表放到json里面 用于最后返//把列表中的每一列的每个值赋给jsonobj jsonobj.put("id", "编号"); jsonobj.put("title", "标题"); jsonobj.put("author", "作者"); jsonobj.put("time", "时间"); //把已经赋值过的jsonobj(即单条数据)放到列表里 jsonal.add(jsonobj);

进入需要在项目中用java处理json格式的数据,因此封装了一个class,现将这个class共享出来和大家分享

/**

* Copyright (c) linkwise 2007-2009 corporation.

* All rights reserved

*/

package com.linghui.common.util;

import java.util.ArrayList;

import java.util.Date;

import java.util.HashMap;

import java.util.Iterator;

import java.util.List;

import java.util.Map;

import net.sf.json.JSONArray;

import net.sf.json.JSONObject;

import net.sf.json.JsonConfig;

import net.sf.json.util.CycleDetectionStrategy;

import com.linghui.common.util.DateUtil;

import com.linghui.common.util.jsonutil.DateJsonValueProcessor;

/**

* @author </br> <a href="mailto:fx19800215@163.com"> robert.feng</a> *

*/

public class JsonUtil {

/**

* 从一个JSON 对象字符格式中得到一个java对象

* @param jsonString

* @param pojoCalss

* @return

*/

public static Object getObject4JsonString(String jsonString,Class pojoCalss){

Object pojo;

JSONObject jsonObject = JSONObject.fromObject( jsonString ); pojo = JSONObject.toBean(jsonObject,pojoCalss);

return pojo;

}

/**

* 从json HASH表达式中获取一个map,改map支持嵌套功能 * @param jsonString

* @return

*/

public static Map getMap4Json(String jsonString){

JSONObject jsonObject = JSONObject.fromObject( jsonString ); Iterator keyIter = jsonObject.keys();

String key;

Object value;

Map valueMap = new HashMap();

while( keyIter.hasNext())

{

key = (String)keyIter.next();

value = jsonObject.get(key);

valueMap.put(key, value);

}

return valueMap;

}

/**

* 从json数组中得到相应java数组

* @param jsonString

* @return

*/

JSONArray jsonArray = JSONArray.fromObject(jsonString); return jsonArray.toArray();

}

/**

* 从json对象集合表达式中得到一个java对象列表

* @param jsonString

* @param pojoClass

* @return

*/

public static List getList4Json(String jsonString, Class pojoClass){

JSONArray jsonArray = JSONArray.fromObject(jsonString); JSONObject jsonObject;

Object pojoValue;

List list = new ArrayList();

for ( int i = 0 ; i<jsonArray.size(); i++){

jsonObject = jsonArray.getJSONObject(i);

pojoValue = JSONObject.toBean(jsonObject,pojoClass); list.add(pojoValue);

}

return list;

}

/**

* 从json数组中解析出java字符串数组

* @param jsonString

* @return

*/

JSONArray jsonArray = JSONArray.fromObject(jsonString); String[] stringArray = new String[jsonArray.size()]; for( int i = 0 ; i<jsonArray.size() ; i++ ){

stringArray[i] = jsonArray.getString(i);

}

return stringArray;

}

/**

* 从json数组中解析出javaLong型对象数组

* @param jsonString

* @return

*/

public static Long[] getLongArray4Json(String jsonString){

JSONArray jsonArray = JSONArray.fromObject(jsonString); Long[] longArray = new Long[jsonArray.size()];

for( int i = 0 ; i<jsonArray.size() ; i++ ){

longArray[i] = jsonArray.getLong(i);

}

return longArray;

}

/**

* 从json数组中解析出java Integer型对象数组

* @param jsonString

* @return

*/

public static Integer[] getIntegerArray4Json(String jsonString){

JSONArray jsonArray = JSONArray.fromObject(jsonString);

本文来源:http://www.guakaob.com/qiuzhizhaopin/304008.html