2015-10-21 5 views
0

У меня есть требование, чтобы построить JSON в приведенном ниже формате:создать JSONArray в Android

{ 
"name" : "value", 
"sex" : "value", 
"details" : [ 
       { 
       "Land" : "value", 
       "nationality": "value", 
       "birthDate" : "value" 
       } 
      ] 
} 

Любая идея о том, как это сделать? Я посмотрел несколько библиотек на Гссона, немного запутанный. Заранее спасибо.

+0

http://stackoverflow.com/a/17810270/4161269 –

+0

http://stackoverflow.com/questions/5571092/convert-object-to-json-in-android –

ответ

0

использование Gson, создать класс (CLASSA) с полями

String name; 
String sex; // an Enum is better here 
Details[] details; //create another class 

использовать Gson:

// Serialize a single object.  
    public String serializeToJson(ClassA myClass) { 
     Gson gson = new Gson(); 
     String j = gson.toJson(myClass); 
     return j; 
    } 
0

Вы на самом деле не нужно Gson. Вы можете создать подобный объект типа;

JSONObject object = new JSONObject(); 
object.put("name","value"); 
object.put("sex","value"); 

И создайте массив;

JSONArray array = new JSONArray(); 
array.put(object); 
0

Вы должны создать JSONArray и установить его в качестве значения для деталей в главном JSON.

После кода вы можете сделать, без использования каких-либо сторонней библиотеки:

JSONObject reqJson = new JSONObject(); 
reqJson.put("Land", "value");        
reqJson.put("nationality", "value"); 
reqJson.put("birthDate", "value"); 

JSONArray array = new JSONArray(); 
array.put(reqJson) 

JSONObject json = new JSONObject(); 
json.put("name", "value"); 
json.put("sex", "value"); 
json.put("details", array.toString()); 
-1
public class Person { 


/** 
* sex : value 
* name : value 
* details : [{"nationality":"value","birthDate":"value","Land":"value"}] 
*/ 
private String sex; 
private String name; 
private List<DetailsEntity> details; 

public void setSex(String sex) { 
    this.sex = sex; 
} 

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

public void setDetails(List<DetailsEntity> details) { 
    this.details = details; 
} 

public String getSex() { 
    return sex; 
} 

public String getName() { 
    return name; 
} 

public List<DetailsEntity> getDetails() { 
    return details; 
} 

public static class DetailsEntity { 
    /** 
    * nationality : value 
    * birthDate : value 
    * Land : value 
    */ 
    private String nationality; 
    private String birthDate; 
    private String Land; 

    public void setNationality(String nationality) { 
     this.nationality = nationality; 
    } 

    public void setBirthDate(String birthDate) { 
     this.birthDate = birthDate; 
    } 

    public void setLand(String Land) { 
     this.Land = Land; 
    } 

    public String getNationality() { 
     return nationality; 
    } 

    public String getBirthDate() { 
     return birthDate; 
    } 

    public String getLand() { 
     return Land; 
    } 
} 

}

 Person p = new Person(); 
    p.setName("name"); 
    p.setSex("sex"); 

    Person.DetailsEntity bean = new Person.DetailsEntity(); 
    bean.setBirthDate("1988"); 
    bean.setLand("land"); 
    bean.setNationality("xxxx"); 

    ArrayList<Person.DetailsEntity> list = new ArrayList<Person.DetailsEntity>(); 
    list.add(bean); 

    p.setDetails(list); 

    System.out.print(new Gson().toJson(p)); 
0

Вот простой Gson ответ

public class Main { 

/* Sample data 
{ 
"name" : "value", 
"sex" : "value", 
"details" : [ 
     { 
      "Land" : "value", 
      "nationality": "value", 
      "birthDate" : "value" 
      } 
     ] 
} 
*/ 

    public static void main(String[] args) { 
     new Main().example(); 
    } 

    public static class Model { 
     public String name; 
     public String sex; 
     public List<Details> details; 

     public static class Details { 
      public String Land; 
      public String nationality; 
      public String birthDate; 
     } 
    } 

    private void example() { 
     Model model = new Model(); 
     model.name = "value"; 
     model.sex = "value"; 
     model.details = new ArrayList<>(); 

     for (int i = 0; i < 10; i++) { 
      Model.Details details = new Model.Details(); 
      details.Land = "value"; 
      details.birthDate = "value"; 
      details.nationality = "value"; 
      model.details.add(details); 
     } 
     String json = new Gson().toJson(model); 
     System.out.println(json); 
    } 
} 

печатает:

{"name":"value","sex":"value","details":[{"Land":"value","nationality":"value","birthDate":"value"},{"Land":"value","nationality":"value","birthDate":"value"},{"Land":"value","nationality":"value","birthDate":"value"},{"Land":"value","nationality":"value","birthDate":"value"},{"Land":"value","nationality":"value","birthDate":"value"},{"Land":"value","nationality":"value","birthDate":"value"},{"Land":"value","nationality":"value","birthDate":"value"},{"Land":"value","nationality":"value","birthDate":"value"},{"Land":"value","nationality":"value","birthDate":"value"},{"Land":"value","nationality":"value","birthDate":"value"}]}