关闭

java Json解析和文件备份

标签: json解析java文件备份
179人阅读 评论(0) 收藏 举报
分类:
java Json解析和文件备份

1、JSON解析,这里解析采用的是org.json.JSONObject,首先看一下json文件,这里取名叫zunyijson.txt,我把其存放在E:\\xml\\test.txt下面,解析json要区分好key是JSONObject和JSONArray即可,如下:
{
    "additionalInfo": [
        {
            "name": "MAINTENANCE_PERSON_NAME",
            "value": ""
        },
        {
            "name": "REMARK",
            "value": ""
        },
        {
            "name": "IPADDRESS",
            "value": "172.31.7.8"
        },
        {
            "name": "MAINTENANCE_PERSON_ADDRESS",
            "value": ""
        },
        {
            "name": "CONTACT_ADDRESS",
            "value": "彩虹大厦南楼二层"
        },
        {
            "name": "HARDWARE_VER",
            "value": "A.2"
        },
        {
            "name": "NETYPE_DISPLAY_NAME",
            "value": "OPCOM3500E"
        },
        {
            "name": "ISTATUS",
            "value": "1"
        },
        {
            "name": "NE_CATEGORY_ID",
            "value": "0"
        },
        {
            "name": "CREATE_TIME",
            "value": "2008-12-29 11:52:59"
        },
        {
            "name": "CREATE_USER",
            "value": ""
        },
        {
            "name": "MACADDRESS",
            "value": ""
        },
        {
            "name": "READCOM",
            "value": "zydx"
        },
        {
            "name": "WRITECOM",
            "value": "zydxvip"
        },
        {
            "name": "GRID_NAME",
            "value": ""
        },
        {
            "name": "GRID_ID",
            "value": ""
        },
        {
            "name": "PROPERTY_RIGHT_UNIT",
            "value": ""
        },
        {
            "name": "CUS_NAME",
            "value": ""
        },
        {
            "name": "STATION",
            "value": ""
        },
        {
            "name": "ROOM",
            "value": ""
        },
        {
            "name": "NET_ID",
            "value": ""
        },
        {
            "name": "IS_LOCAL",
            "value": "1"
        },
        {
            "name": "TOPO_AEND_PTP",
            "value": ""
        }
    ],
    "communicationState": {},
    "emsInSyncState": true,
    "location": " ",
    "name": [
        {
            "name": "EMS",
            "value": "Raisecom/NNM"
        },
        {
            "name": "ManagedElement",
            "value": "2"
        }
    ],
    "nativeEMSName": "22-3500E-1",
    "owner": "Raisecom",
    "productName": "OPCOM3500E",
    "supportedRates": [],
    "userLabel": "22-3500E-1",
    "version": "2.5.36"
}

2、解析代码如下,文件放在本地,通过代码读取出来然后解析:

package www.zy.com.FirstJava;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;


import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

/**
 * 解析json
 * @author Administrator
 *
 */
public class ZunYiJson {

	public static void main(String[] args) {
		File file = new File("E:\\xml\\zunyijson.txt");
		if(!file.exists()){
			System.out.println("文件不存在!");
		}
		try {
			 analysis(file);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	public static void analysis(File file) throws IOException{
		FileInputStream fis = new FileInputStream(file);
		int size = fis.available();//求出长度一次性读完
		byte[] by = new byte[size];
		fis.read(by);
		fis.close();
		String str = new String(by,"GB2312");//json字符串的结果 
		System.out.println(str);
		try {
			JSONObject jsonObject = new JSONObject(str);
			JSONArray jsonArray = jsonObject.getJSONArray("additionalInfo");
			for(int i = 0;i<jsonArray.length();i++){
				JSONObject jo = jsonArray.getJSONObject(i);
				System.out.println("name:"+ jo.get("name"));
				System.out.println("value:"+ jo.get("value"));
			}
			System.out.println("communicationState:" + jsonObject.get("communicationState"));
			System.out.println("emsInSyncState:" + jsonObject.getBoolean("emsInSyncState"));
			System.out.println("location:" + jsonObject.get("location"));
			JSONArray ja = jsonObject.getJSONArray("name");
			for(int j = 0;j<ja.length();j++){
				JSONObject js = ja.getJSONObject(j);
				System.out.println("name:" + js.get("name"));
				System.out.println("value:" + js.get("value"));
			}
			System.out.println("nativeEMSName:" + jsonObject.get("nativeEMSName"));
			System.out.println("owner:" + jsonObject.get("owner"));
			System.out.println("productName:" + jsonObject.get("productName"));
			System.out.println("supportedRates:" + jsonObject.get("supportedRates"));
			System.out.println("version:" + jsonObject.get("version"));
		} catch (JSONException e) {
			e.printStackTrace();
		}
		
	}
}



3、java实现文件备份代码,从一个路径备份到某一个路径下

	/**
	 * 备份文件到指定目录下
	 * @throws FileNotFoundException
	 * @throws IOException
	 */
	 public static void copyFile() throws FileNotFoundException, IOException {
		 	//读操作,原始目录
		 	FileInputStream	fis = new FileInputStream(PATH);//PATH是原路径
		 	if(fis!=null){
		 		 //写操作,目标目录
		        String dataTime = getStringDateShort();
		        String filePath = "F:\\ftp\\file_bak\\report" + dataTime + ".txt";//新路径
		        bakFileName = filePath;
		        FileOutputStream fos = new FileOutputStream(filePath);
		        int len = 0;
		        byte[] buf = new byte[1024];
		       
		        while ((len = fis.read(buf)) != -1) {
		            fos.write(buf, 0, len);
		        }
		        System.out.println("附件备份到F:\\ftp\\file_bak\\成功!");
		        fos.close();
		        fis.close();
		 	}
	    }
	
	/**
	 * 获取现在时间并将其格式化为指定格式 
	 * @return
	 */
	 public static String getStringDateShort() {
		   Date currentTime = new Date();
		   SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");
		   String dateString = formatter.format(currentTime);
		   return dateString;
		}

4、json解析结果如图所示:



1
0
查看评论

xml解析和json解析的对比

[  XML ] 使 用XML作为传输格式的优势: 1. 格式统一, 符合标准 2. 容易与其他系统进行远程交互, 数据共享比较方便 缺点: 1.服务器端和客户端都需要花费大量代码来解析XML, 不论服务器端和客户端代码变的异常复杂和不容易维护 2. XML文件格式文件庞...
  • hitsyd2015
  • hitsyd2015
  • 2015-11-12 18:03
  • 902

Java XML JSON 数据解析

下面我们通过一段代码了解一下解析JSON格式数据的基本过程: 提示:使用JSON需要导入 JSON 相关的多个Jar文件 import net.sf.json.JSONObject; public class JsonUtil { public static void parseJson(...
  • aikongmeng
  • aikongmeng
  • 2013-06-26 14:07
  • 3069

java解析json数据(前台json数据封装后台springmvc解析)

业务:前台ajax传递json对象形式,json对象数组形式数据,传递后台,解析json数据开发环境:eclipse4.5+mave3.3+mysql5.7+tomcat7+jdk1.7开发技术:springmvc+spring+mybatis+js+jquery+jspjar包:&amp;...
  • u014079773
  • u014079773
  • 2017-09-12 12:46
  • 684

Java基础系列16:使用JSONObject和JSONArray解析和构造json字符串

转自:https://www.zifangsky.cn/561.html 一 介绍 在Java开发中,我们通常需要进行XML文档或JSON字符串的构造和解析。当然在Java Web开发中有一些第三方插件是可以自动完成Java对象和json之间的转换的,比如:jackson插件(PS:关于ja...
  • zh123456zh789
  • zh123456zh789
  • 2017-03-27 10:25
  • 1563

javaweb使用get与post请求json数据并解析

一,请求方式: String url="http://api.map.baidu.com/geocoder/v2/"; String param="ak=fMKetT9DWpZfDOYmZM3V0cXGbEmcQaBh&callback=renderRevers...
  • kunzai6
  • kunzai6
  • 2016-09-30 11:12
  • 779

利用Java反射机制和泛型,全自动解析json

有啦这个简直,太爽啦, 利用Java 反射机制,利用Class 就可以得到 类的 变量  Field[] fields=cls.getDeclaredFields(); 还可以通过类中 的方法名字 去执行这个方法  m1 = cls.getDeclaredMethod(getMo...
  • king866
  • king866
  • 2015-08-08 17:32
  • 3392

Java解析Json数据的两种方式

JSON数据解析的有点在于他的体积小,在网络上传输的时候可以更省流量,所以使用越来越广泛,下面介绍使用JsonObject和JsonArray的两种方式解析Json数据。 使用以上两种方式解析json均需要依赖json-lib.jar开发包使用依赖包 1、JsonObject 使用JsonObjec...
  • chenfengdejuanlian
  • chenfengdejuanlian
  • 2016-08-12 12:36
  • 22183

Java中JSON解析

JSON数据解析 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - ...
  • u013144863
  • u013144863
  • 2016-08-09 08:47
  • 3161

Java解析Json小例子

Java解析Json小例子,包含了遍历未知Key的json键值对。操作json数组。使用的是阿里的fastjson工具包。 json在线解析工具: http://www.jsonin.com/ package com.jd; import com.alib...
  • daydayupzzc
  • daydayupzzc
  • 2016-03-08 17:21
  • 2364

java解析ajax之json字符串

1.ajax提交json字符串 var json = {}; json.data = new Array(); var obj = {}; obj.name = "hehe"; json.data.push(obj); obj = {...
  • wow4464
  • wow4464
  • 2016-04-07 15:29
  • 1232
    个人资料
    • 访问:55368次
    • 积分:1209
    • 等级:
    • 排名:千里之外
    • 原创:65篇
    • 转载:0篇
    • 译文:0篇
    • 评论:12条
    贵州中测信息技术有限公司
    友情链接
    最新评论