JAva解析jsonファイル
3506 ワード
/**
*
*/
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;
}
}