java解析json文件

来源:互联网 发布:淘宝10元包邮网址 编辑:程序博客网 时间:2024/05/21 08:59


/** * */package com.XXX.json;import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.FileReader;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.UnsupportedEncodingException;import com.XXX.utils.Constant;import net.sf.json.JSON;import net.sf.json.JSONArray;import net.sf.json.JSONObject;import net.sf.json.xml.XMLSerializer;/** * @author  * */public class JsonAndXml {    /**     * @param args     */    public static void main(String[] args) {        // TODO Auto-generated method stub         ParserJsonFromFile();    }    private static void ParserJsonFromFile() {        // TODO Auto-generated method stub        String mJsonString = getJsonFromFile();        ParseJson(mJsonString);    }    private static void ParseJson(String mJsonString) {        // TODO Auto-generated method stub        //1.定义json对象        JSONObject mObject = new JSONObject(mJsonString);        JSONObject data = mObject.getJSONObject("data");        //2.定义json数组对象,该字段定义带有[]        JSONArray tags = data.getJSONArray("tag");        String cdn = null;        String fileId = null;        StringBuffer mCdnBuffer = new StringBuffer();        StringBuffer mFileIdBuffer = new StringBuffer();        //3.逐个解析json数组tags的每个对象        for (int i = 0; i < tags.length(); i++) {            //4.json数组每个对象又定义成一个json对象            JSONObject tag = tags.getJSONObject(i);            //5.重新定义的json对象内有具有数组对象[]            JSONArray sources = tag.getJSONArray("source");            //6.逐个解析json数组sources的每个对象            for (int j = 0; j < sources.length(); j++) {                //7.具体定义解析的操作                JSONObject source = sources.getJSONObject(j);                cdn = source.getString("cdn");                fileId = source.getString("fileId");                mCdnBuffer.append(cdn + ", ");                mFileIdBuffer.append(fileId + ", ");            }        }        System.out.println("mCdnBuffer = " + mCdnBuffer.toString());        System.out.println("mFileIdBuffer = " + mFileIdBuffer.toString());    }    /**     * 将字节流转换成字符流并通过缓冲去读取     * */    private static String getJsonFromFile() {        String mPathname = null;        String jsonString = null;        mPathname = Constant.JSON_PATH + File.separator+ "273389.json";        File mFile = new File(mPathname);        try {            StringBuffer mSBuffer = new StringBuffer();            InputStream mInputStream = new FileInputStream(mFile);            InputStreamReader mInputStreamReader = new InputStreamReader(mInputStream, "utf-8");            BufferedReader mBufferedReader = new BufferedReader(mInputStreamReader);            String str = null;            while ((str = mBufferedReader.readLine()) != null) {                mSBuffer.append(str);            }            jsonString = mSBuffer.toString();            mInputStream.close();            mInputStream.close();            mBufferedReader.close();        } catch (Exception e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        System.out.println("jsonString = " + jsonString);        return jsonString;    }}


0 0
原创粉丝点击