2015-12-29 3 views
1

У меня есть пропущенные поля после создания (добавление к моему JsonArray). Я получаю через ObjectInputStream нижнюю строку Json.Добавление к результатам JsonArray с отсутствующими элементами

[{"firstName":"Vasile","lastName":"Petraru","department":"Management","salary":5600},{"firstName":"Ion","lastName":"Andronic","department":"Finante","salary":3222}] 

Gson gson = new Gson(); 
String a = new String(inputStream.readObject().toString()); 
JsonParser parser = new JsonParser(); 
JsonArray jArray = parser.parse(a).getAsJsonArray(); 

ArrayList<Employee> employees = new ArrayList<>(); 
for(JsonElement obj : jArray){ 
     Employee b = gson.fromJson(obj,Employee.class); 
     employees.add(b); 
} 

После я добавляю к JsonArray так:

public String generateJSON() { 
    JSONObject object = new JSONObject(); 
    JSONArray array = new JSONArray(); 
    try { 
     object.put("Employees", employees); 
     array.put(object); // <-- here is the probem... 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 
    return array.toString(); 
} 

a = generateJSON(); 
System.out.println("\nAfter generating: " + a); 
// ---> 

[{"Employees":[{"lastName":"Petraru","salary":5600,"department":"Management"},{"lastName":"Andronic","salary":3222,"department":"Finante"}]}] 

После создания я получаю нужную строку, но без элементов «FirstName» ... Почему и как я могу решить это? Благодаря классу

Сотрудник:

public class Employee implements Serializable { 
public String firstName; 
public String lastName; 
public String department; 
public int salary; 

public Employee(String firstName, String lastName, String department, int salary){ 
    this.firstName = firstName; 
    this.lastName = lastName; 
    this.department = department; 
    this.salary = salary; 
} 
+0

Когда вы помещаете объект в массив, объекты-сотрудники заполнены правильно? –

+0

уверен, я напечатал, и все в порядке. – cityboycity1

ответ

0

Вместо непосредственного использования класса сотрудника вы можете попробовать что-то вроде этого:

JSONObject jo = new JSONObject(); 
jo.put("firstName", employee.getFirstName); 
jo.put("lastName", employee.getLastName); 

JSONArray ja = new JSONArray(); 
ja.put(jo); 

JSONObject mainObj = new JSONObject(); 
mainObj.put("employees", ja); 

И объявите методы получения и установки в классе Employee. Сообщите мне, если это работает.

Смежные вопросы