如何在Json字符串中获取每个属性?
我通过JSON.stringify在JavaScript中首先转换我的对象数组来获得Json。之后我使用ajax将字符串传递给我的servlet。
Servlet代码:
String data = request.getParameter("jsonData");
System.out.println("json data: " + data);
结果:
[{"courseID":"1","codePI":"PO-BSINSYS-02.01","curriculumID":"3"},
{"courseID":"2","codePI":"PO-BSINSYS-02.02","curriculumID":"3"}]
我想要的是获取json的各个值,以便稍后将它们分配给我的对象。
E.g。
ArrayList<Curriculum> arrCur = new ArrayList<>();
for (int x = 0; x < array.size(); x++) {
Curriculum cur = new Curriculum();
cur.setCourseID(courseID[x]);
cur.setCodePO(codePI[x]);
cur.setCurriculumID(curriculumID[x]);
arrCur.add(cur);
}
答案 0 :(得分:0)
提到“crowder”,你需要解析json。 有几种方法可以做到。
答案 1 :(得分:0)
如果您从javascript发送对象并且如果您上课 -
,则可以使用这种方式 class Curriculum{
Integer courseID;
String codePI;
Integer curriculumID;
}
像这样使用 -
String data = request.getParameter("jsonData");
JSONArray jsonArray = new JSONArray(data);
java.lang.reflect.Type curriculumType =new com.google.gson.reflect.TypeToken<List<Curriculum>>(){}.getType();
List<Curriculum> curriculum = new GsonBuilder().create().fromJson(jsonArray.toString(), curriculumType);
这将分配课程列表。希望这会对你有所帮助。
答案 2 :(得分:0)
您还可以使用jackson-databind API将您的json转换为java对象。
为Curriculum创建bean。
class Curriculum{
Integer courseID;
String codePI;
Integer curriculumID;
public Integer getCourseID() {
return courseID;
}
public void setCourseID(Integer courseID) {
this.courseID = courseID;
}
public String getCodePI() {
return codePI;
}
public void setCodePI(String codePI) {
this.codePI = codePI;
}
public Integer getCurriculumID() {
return curriculumID;
}
public void setCurriculumID(Integer curriculumID) {
this.curriculumID = curriculumID;
}
}
以下是将json转换为Curriculum对象的代码
JSONArray jsonArray = getJSONArray();
ObjectMapper objectMapper = new ObjectMapper();
for(int i =0;i<jsonArray.length();i++){
JSONObject jsonData = jsonArray.getJSONObject(i);
//convert json string to object
try {
Curriculum curr= objectMapper.readValue(jsonData.toString().getBytes(), Curriculum.class);
System.out.println(curr);
} catch (Exception e) {
e.printStackTrace();
}
}