1

I have the following JSON text (REST API URL SOURCE). How can I parse it to get ID, name, phone,city etc:

{"ID":1,"name":"aaa","phone":["345345345","1244","743"],"city":"asdasd"}
{"ID":2,"name":"bbb","phone":["234234","235","124"]}
{"ID":3,"name":"ccc","phone":["4234","6236","123"],"city":"jhjk"}

thanks.

EDIT:

I Run this code:

                      String var1 = output;
                       JSONObject obj;
                       try {
                              obj = new JSONObject(var1);
                              String a = obj.getString("name");
                              String b = obj.getString("phone");
                              String c = obj.getString("city");

                              System.out.println("name:" + a);
                              System.out.println("phone:" + b);
                              System.out.println("city:" + c);

and I got "phone" as a string . someone can add the code to parse the phone line?

eyal1506
  • 113
  • 2
  • 5
  • 11
  • By using a JSON-Parser? – Hulk Jun 06 '18 at 09:47
  • http://www.oracle.com/technetwork/articles/java/json-1973242.html – Dmitri Gudkov Jun 06 '18 at 09:49
  • 4
    Possible duplicate of [How to parse JSON in Java](https://stackoverflow.com/questions/2591098/how-to-parse-json-in-java) – rjdkolb Jun 06 '18 at 09:49
  • 1
    For information, the "following JSON text" is malformed JSON. It looks like it is a text file, made of three JSON objects, one on each line. JSON format doesn't allow to just write several JSON objects one after the other without a structuring syntax linking them. No parser can fix that for you. ... But if they're all on their on line, you could always read the file line-by-line, and use a JSON parser on each line. – kumesana Jun 06 '18 at 10:07

2 Answers2

2

You can use Gson to parse the JSON. Simply create a class for this and Gson will do the parsing for you.

class MyClass{
    @SerializedName("ID")
    String ID;
    @SerializedName("name")
    String name;
    @SerializedName("phone")
    List<String> phone;
    @SerializedName("city")
    String city;

    public MyClass(String ID, String name, List<String> phone, String city) {
        this.ID = ID;
        this.name = name;
        this.phone = phone;
        this.city = city;
    }

    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 List<String> getPhone() {
        return phone;
    }

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

    public String getCity() {
        return city;
    }

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

then in your main class or activity:

MyClass myclass= new Gson().fromJSON(jsonString,MyClass.class);
System.out.println(myclass.getID());
Anuran Barman
  • 1,556
  • 2
  • 16
  • 31
0

Make use of org.json libarary. Afterwards, create an instance of JSONObject and JSONArray to parse the JSON String

chungonion
  • 125
  • 3
  • 8