Ehsan Rafique
Ehsan Rafique

Reputation: 117

create data model for this JSON file in Android

I currently starts working on Firebase in android so I am facing problem in creating data models.So kindly help me to create data model for below JSON from android studio.

Like:

Firebase ref = new Firebase(Firebase_Url);
ref.child("Student").setValue(anyVariable);

this code generates a simple model in firebase and stores the data but i want to store more data like below.

Any help from you guys would be very grateful.

"restaurants" : [
{
    "name": "Burger Bar",
    "backgroundImageURL": "http://somthing.com/Images/1.png",
    "category" : "Burgers",
    "contact": {
        "phone": "1231231231",
        "formattedPhone": "(123) 123-1231",
        "twitter": "1twitter"
    },
    "location": {
        "address": "5100 Belt Line Road, STE 502",
        "crossStreet": "Dallas North Tollway",
        "lat": 32.950787,
        "lng": -96.821118,
        "postalCode": "75254",
        "cc": "US",
        "city": "Addison",
        "state": "TX",
        "country": "United States",
        "formattedAddress": [
            "5100 Belt Line Road, STE 502 (Dallas North Tollway)",
            "Addison, TX 75254",
            "United States"
        ]
    }
} 

Upvotes: 1

Views: 3236

Answers (1)

Ehsan Rafique
Ehsan Rafique

Reputation: 117

I found the solution :)

solution:

1) Make a new Project in Android Studio 2) Change the rules of Database to access it without authentication. like

enter image description here

3) First you have to make new project at Firebase Console.

4) Add this dependency in build.gradle(Module:app)

compile 'com.firebase:firebase-client-android:2.4.0'

5) add new class Restaurants.java

public class Restaurants {

    String name;
    String imageUrl;
    String catagory;
    Contacts contacts = new Contacts();
    Location location = new Location();

    public Restaurants(String name, String imageUrl, String catagory, Contacts contacts, Location location) {
        this.name = name;
        this.imageUrl = imageUrl;
        this.catagory = catagory;
        this.contacts = contacts;
        this.location = location;
    }

    public String getCatagory() {
        return catagory;
    }

    public void setCatagory(String catagory) {
        this.catagory = catagory;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getImageUrl() {
        return imageUrl;
    }

    public void setImageUrl(String imageUrl) {
        this.imageUrl = imageUrl;
    }

    public Location getLocation() {
        return location;
    }

    public void setLocation(Location location) {
        this.location = location;
    }

    public Contacts getContacts() {
        return contacts;
    }

    public void setContacts(Contacts contacts) {
        this.contacts = contacts;
    }
}

6) create class Contacts.java

public class Contacts {

    String phone, formattedPhone, twitter;

    // 0 argument constructor to initialize the Contatcs Object in Resturants.java
        public Contacts() {}

        public Contacts(String phone, String formattedPhone, String twitter) {
            this.phone = phone;
            this.formattedPhone = formattedPhone;
            this.twitter = twitter;
        }

        public String getPhone() {
            return phone;
        }

        public void setPhone(String phone) {
            this.phone = phone;
        }

        public String getFormattedPhone() {
            return formattedPhone;
        }

        public void setFormattedPhone(String formattedPhone) {
            this.formattedPhone = formattedPhone;
        }

        public String getTwitter() {
            return twitter;
        }

        public void setTwitter(String twitter) {
            this.twitter = twitter;
        }
    }

7) Create class Location.java

public class Location {

    String address, city, state, country;
    ArrayList<Address> addressList;

    public Location(){}

    public Location(String address, String city, String state, String country, ArrayList<Address> addressList) {
        this.address = address;
        this.city = city;
        this.state = state;
        this.country = country;
        this.addressList = addressList;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public String getState() {
        return state;
    }

    public void setState(String state) {
        this.state = state;
    }

    public String getCountry() {
        return country;
    }

    public void setCountry(String country) {
        this.country = country;
    }

    public ArrayList<Address> getAddressList() {
        return addressList;
    }

    public void setAddressList(ArrayList<Address> addressList) {
        this.addressList = addressList;
    }
}

8) Create class Address.java

public class Address {

    String street, area;

    // 0 argument constructor to initialize the Address Object in Restaurants.java
    public Address(){}

    public Address(String street, String area) {
        this.street = street;
        this.area = area;
    }

    public String getStreet() {
        return street;
    }

    public void setStreet(String street) {
        this.street = street;
    }

    public String getArea() {
        return area;
    }

    public void setArea(String area) {
        this.area = area;
    }
}

9) Now MainActivity.java class will be like this

public class MainActivity extends AppCompatActivity {

    ArrayList<Restaurants> restaurantsList;
    ArrayList<Address> addressList;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Firebase.setAndroidContext(this);

        //Initializing the ArrayLists
        restaurantsList = new ArrayList<Restaurants>();
        addressList = new ArrayList<Address>();

        //Adding data to ArrayLists
        addressList.add(new Address("Street 5", "Mohafiz Town"));
        addressList.add(new Address("Street 6", "Wapda Town"));

        restaurantsList.add(new Restaurants("Ehsan", "url1", "student", new Contacts("0303-5367228", "no", "my Twitter"),
               new  Location("202-A", "GRW","pak","Pakistan", addressList)));

        //Storing Data to Firebase
        Firebase ref = new Firebase("https://fir-datamodelingprac.firebaseio.com/");
        ref.setValue(restaurantsList);
    }
}

10) Run the app

11) Output in firebase will be like this

enter image description here

Upvotes: 1

Related Questions