Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Deserializing JSON string in android

Tags:

java

json

android

I have JSON String that read as below

{   "Status":"Clear",    "Class": [{  <br>
        {"name":"personA", "available" : 1}, <br>
       {"name":"personB", "available" : 0}, <br>
       {"name":"personC", "available" : 0}, <br>
        {"name":"personD", "available" : 1} <br>
         }] }

How do I deserialize the JSON String above?

I got the idea of using JSONObject to take in whole JSON String into it but no idea how to get the arraylist of object (the list of Class object) and assign to a arraylist<Class>.

Guidance and help are much appreciated.

UPDATED :

SOLVED AND SOLUTION SHOWN

I have solved this question but I think I have to explain how and why I used such solution.

So to further explain my question, this is an json string that originally an object that got serialized and sent from a webservice to my apps.

the original object is like this :

 public class StatusJson
     {
         public String Status { get; set; }
         public List<Class> Class { get; set; }
     }

So what I have to do is just declare an exactly same class in my android then use this code

statusJson  statusJSON=g.fromJson(JSonString,StatusJson.class);

which will automatically parse the json string to the exact same class format.

Hope this will help you guys too if you are directly sending a JSON serialized class like me.

like image 852
JamesYTL Avatar asked Jul 01 '16 02:07

JamesYTL


People also ask

What is JSON Deserializing?

JSON is a format that encodes objects in a string. Serialization means to convert an object into that string, and deserialization is its inverse operation (convert string -> object).

What is a JSON string android?

JSON stands for JavaScript Object Notation.It is an independent data exchange format and is the best alternative for XML. This chapter explains how to parse the JSON file and extract necessary information from it. Android provides four different classes to manipulate JSON data.

What is serializing and deserializing JSON in C#?

Json structure is made up with {}, [], comma, colon and double quotation marks and it includes the following data types: Object, Number, Boolean, String, and Array. Serialize means convert an object instance to an XML document. Deserialize means convert an XML document into an object instance.

Does Android use JSON?

Android supports all the JSON classes such as JSONStringer, JSONObject, JSONArray, and all other forms to parse the JSON data and fetch the required information by the program. JSON's main advantage is that it is a language-independent, and the JSON object will contain data like a key/value pair.


2 Answers

I suggest you to check Gson library.

You can create a class with anotations

private class ClassObj {
@SerializedName("personA") 
private final String personA;
....
}

And then

ClassObj object = gson.fromJson(jsonString, ClassObj.class);

It can be complicated object, which contain other gson objects or Collection. Try.

like image 182
thealeksandr Avatar answered Oct 22 '22 05:10

thealeksandr


I believe this is an invalid Json. Your class attribute is an array and an object.

like image 1
Yasir Abbas Avatar answered Oct 22 '22 06:10

Yasir Abbas