【发布时间】:2015-12-29 17:05:36
【问题描述】:
在生成(添加到我的 JsonArray)后,我得到了一个遗漏的字段。 我通过 ObjectInputStream 接收下面的 Json 字符串。
[{"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;
}
【问题讨论】:
-
当您将对象放入数组时,员工对象是否正确填充?
-
当然,我已经打印了,一切正常。