将ajax请求中的JSON转换为java中的JSON对象



这是表单数据

selectedDtlId: [{"id":"3","isReviewed":true,"notes":"notes asdf test add 2"},{"id":"2","isReviewed":true,"notes":""},{"id":"1","isReviewed":true,"notes":""}]
isReviewedAll: true
notesAll: 


在控制器中运行以下代码时

Gson gson = new Gson();
gson.toJson(request.getParameter("selectedDtlId"));

响应

"[{"id":"3","isReviewed":true,"notes":"notes asdf test add 2"},{"id":"2","isReviewed":true,"notes":""},{"id":"1","isReviewed":true,"notes":""}]"


预期响应

[
{
"id": "3",
"isReviewed": true,
"notes": "notes asdf test add 2"
},
{
"id": "2",
"isReviewed": true,
"notes": ""
},
{
"id": "1",
"isReviewed": true,
"notes": ""
}
]

当您应该从Json调用时,您正在调用Json:

gson.fromJson(request.getParameter("selectedDtlId"), JsonElement.class);

或者如果你有一个型号:

gson.fromJson(request.getParameter("selectedDtlId"), MyModel.class);

您应该将它映射到一个类。(你也在给Json打电话,而你应该从Json打(

import com.google.gson.Gson;
public class Main {
public static void main(String[] args) {
String jsonInString = "[{"id":"3","isReviewed":true,"notes":"notes asdf test add 2"},{"id":"2","isReviewed":true,"notes":""},{"id":"1","isReviewed":true,"notes":""}]";
Gson gson = new Gson();
SelectedDtlId[] selectedDtlIds = gson.fromJson(jsonInString, SelectedDtlId[].class);
for (SelectedDtlId selectedDtlId : selectedDtlIds) {
System.out.println("id: " + selectedDtlId.getId());
System.out.println("notes: " + selectedDtlId.getNotes());
System.out.println("isReviewed: " + selectedDtlId.isReviewed());
}
}
}

型号

import com.google.gson.annotations.SerializedName;
public class SelectedDtlId {
@SerializedName("id")
private int id;
@SerializedName("isReviewed")
private boolean isReviewed;
@SerializedName("notes")
private String notes;
// getters & setters
}

结果应该是:

id: 3
notes: notes asdf test add 2
isReviewed: true
id: 2
notes: 
isReviewed: true
id: 1
notes: 
isReviewed: true

最新更新