We will be using retrofit,gson for parsing, so go to your app level build.gradle and add the following as dependencies
implementation 'com.squareup.retrofit2:retrofit:2.0.0-beta4'
implementation 'com.squareup.retrofit2:converter-gson:2.3.0'please add the latest dependency versions for retrofit, converter-gson
Hi, in this tutorial we are about to parse the below json array. Check this json array >> https://navneet7k.github.io/sample_array.json
Clearly, the json is of the form [{},{}..] . It is a json array, hence we can parse it as a list from android |
1) Automatic model class/pojo class generation using http://www.jsonschema2pojo.org/
- So, first of all, go to http://www.jsonschema2pojo.org/
- Paste the json https://navneet7k.github.io/sample_array.json in the box provided
Specify Target language as Java, Source Type as JSON and annotation style as Gson |
- Now click preview and copy the generated java files
Now copy the contents of the class and add it in android studio project |
Now in the android studio project, create a new java file Cars.java and add the above generated code inside it like shown below
Cars.java
public class Cars { @SerializedName("id") @Expose private String id; @SerializedName("name") @Expose private String name; @SerializedName("desc") @Expose private String desc; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getDesc() { return desc; } public void setDesc(String desc) { this.desc = desc; } }
Since the json is an array, we can parse it as a list like this <List<Cars>> from android. So add the below code in your MainActivity.java file
MainActivity.java
private void parseJson() { Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://navneet7k.github.io/") .addConverterFactory(GsonConverterFactory.create()) .build(); RequestInterface request = retrofit.create(RequestInterface.class); Call<List<Cars>> call1=request.getJson(); call1.enqueue(new Callback<List<Cars>>() { @Override public void onResponse(Call<List<Cars>> call, Response<List<Cars>> response) { Toast.makeText(MainActivity.this,"Success!",Toast.LENGTH_SHORT).show(); } @Override public void onFailure(Call<List<Cars>> call, Throwable t) { Toast.makeText(MainActivity.this,"Failure",Toast.LENGTH_SHORT).show(); } }); }
RequestInterface.java
interface RequestInterface { @GET("sample_array.json") Call<List<Cars>> getJson(); }
Download free source code
You may also check this tutorial to parse a json array into recyclerview
No comments:
Post a Comment