How can I parse a local JSON file from assets folder into a ListView?
As Faizan describes in their answer here:
First of all read the Json File from your assests file using below code.
and then you can simply read this string return by this function as
public String loadJSONFromAsset() {
String json = null;
try {
InputStream is = getActivity().getAssets().open("yourfilename.json");
int size = is.available();
byte[] buffer = new byte[size];
is.read(buffer);
is.close();
json = new String(buffer, "UTF-8");
} catch (IOException ex) {
ex.printStackTrace();
return null;
}
return json;
}
and use this method like that
try {
JSONObject obj = new JSONObject(loadJSONFromAsset());
JSONArray m_jArry = obj.getJSONArray("formules");
ArrayList<HashMap<String, String>> formList = new ArrayList<HashMap<String, String>>();
HashMap<String, String> m_li;
for (int i = 0; i < m_jArry.length(); i++) {
JSONObject jo_inside = m_jArry.getJSONObject(i);
Log.d("Details-->", jo_inside.getString("formule"));
String formula_value = jo_inside.getString("formule");
String url_value = jo_inside.getString("url");
//Add your values in your `ArrayList` as below:
m_li = new HashMap<String, String>();
m_li.put("formule", formula_value);
m_li.put("url", url_value);
formList.add(m_li);
}
} catch (JSONException e) {
e.printStackTrace();
}
For further details regarding JSON Read HERE
Read content of JSON File from Internal Storage
Read string from file and convert it to JsonObject
or JsonArray
String jsongString = readFromFile();
JSONArray jarray = new JSONArray(str);
Use below method to read data from internal storage file and return as String
.
private String readFromFile() {
String ret = "";
InputStream inputStream = null;
try {
inputStream = openFileInput("names.json");
if ( inputStream != null ) {
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String receiveString = "";
StringBuilder stringBuilder = new StringBuilder();
while ( (receiveString = bufferedReader.readLine()) != null ) {
stringBuilder.append(receiveString);
}
ret = stringBuilder.toString();
}
}
catch (FileNotFoundException e) {
Log.e("login activity", "File not found: " + e.toString());
} catch (IOException e) {
Log.e("login activity", "Can not read file: " + e.toString());
}
finally {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return ret;
}
Reading a json file in Android
Put that file in assets.
For project created in Android Studio project you need to create assets folder under the main folder.
Read that file as:
public String loadJSONFromAsset(Context context) {
String json = null;
try {
InputStream is = context.getAssets().open("file_name.json");
int size = is.available();
byte[] buffer = new byte[size];
is.read(buffer);
is.close();
json = new String(buffer, "UTF-8");
} catch (IOException ex) {
ex.printStackTrace();
return null;
}
return json;
}
and then you can simply read this string
return by this function as
JSONObject obj = new JSONObject(json_return_by_the_function);
For further details regarding JSON see
http://www.vogella.com/articles/AndroidJSON/article.html
Hope you will get what you want.
How to read json file from assests in android using Kotlin?
Reading json file from assets folder in Kotlin is very easy, just use the following code
val fileInString: String =
applicationContext.assets.open(fileName).bufferedReader().use { it.readText() }
How to read a json file from resource directory in Android Studio?
From the docs:
raw/
Arbitrary files to save in their raw form. To open these resources
with a raw InputStream, call Resources.openRawResource() with the
resource ID, which is R.raw.filename.However, if you need access to original file names and file hierarchy,
you might consider saving some resources in the assets/ directory
(instead of res/raw/). Files in assets/ aren't given a resource ID, so
you can read them only using AssetManager.
https://developer.android.com/guide/topics/resources/providing-resources
Related Topics
Drawerlayout Double Drawer (Left and Right Drawers Simultaneously)
Android - Getting Audio to Play Through Earpiece
Android: Implementing Progressbar and "Loading..." for Endless List Like Android Market
How to Use Adb to Send Touch Events to Device Using Sendevent Command
Android Studio, Suddenly Got Gpu Driver Issue When Running Emulator
How to Check If an Intent Can Be Handled from Some Activity
Converting Bitmap to Bytearray Android
Android Youtube Upload Video with Static Username and Password
How to 'Gettopactivity' Name or Get Currently Running Application Package Name in Lollipop
How to Scale/Resize Text to Fit a Textview
Android Pendingintent Extras, Not Received by Broadcastreceiver
Android Gradle Apache Httpclient Does Not Exist
Restoring State of Textview After Screen Rotation
"Realm Migration Needed", Exception in Android While Retrieving Values from Realm Db