Back to project page Android-CriminalIntent.
The source code is released under:
MIT License
If you think the Android project Android-CriminalIntent listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
package com.bignerdranch.android.criminalintent; //from w w w. j a v a 2 s. c om import android.content.Context; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONTokener; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.Writer; import java.util.ArrayList; /** * JSON Serializer for Crime objects * Created by mweekes on 12/29/13. */ public class CriminalIntentJSONSerializer { private Context mContext; private String mFilename; public CriminalIntentJSONSerializer(Context ctx, String filename) { mContext = ctx; mFilename = filename; } public ArrayList<Crime> loadCrimes() throws JSONException, IOException { ArrayList<Crime> crimes = new ArrayList<Crime>(); BufferedReader reader = null; try { // Open and read the file into a StringBuilder InputStream inputStream = mContext.openFileInput(mFilename); reader = new BufferedReader(new InputStreamReader(inputStream)); StringBuilder jsonString = new StringBuilder(); String line = null; while ((line = reader.readLine()) != null) { // line breaks are omitted and irrelevant jsonString.append(line); } // Parse the JSON use JSONTokener JSONArray array = (JSONArray) new JSONTokener(jsonString.toString()).nextValue(); // Build the array of crimes from JSONObjects for (int i = 0; i < array.length(); i++) { crimes.add(new Crime(array.getJSONObject(i))); } } catch (FileNotFoundException fnfe) { // Ignore; bootstrap problem } finally { if (reader != null) { reader.close(); } } return crimes; } public void saveCrimes(ArrayList<Crime> crimes) throws JSONException, IOException { // Build an array in JSON JSONArray array = new JSONArray(); for (Crime crime : crimes) { array.put(crime.toJSON()); } // Write file to disk Writer writer = null; try { OutputStream outputStream = mContext.openFileOutput(mFilename, Context.MODE_PRIVATE); writer = new OutputStreamWriter(outputStream); writer.write(array.toString()); } finally { if (writer != null) { writer.close(); } } } }