В этом случае я использую весенний ботинок. и Rest для возврата данных.Пользовательский Json с пружиной контура
Вот JSON я щас из базы данных с помощью crudrepository:
{
forms: [
{
paent: "",
posx: 1,
fieldname: "CostCenter",
posy: 1,
ishidden: false,
level: 0,
recordname: "CostCenter",
isrequired: true,
inputtype: "text",
issearchable: true,
label: "Cost Center",
seq: "1",
isenabled: false
},
{
parent: "CostCenterDetail",
ishidden: false,
level: 1,
recordname: "CostCenter",
isrequired: true,
inputtype: "text",
issearchable: false,
label: "Description",
posx: 1,
fieldname: "Description",
posy: 2,
seq: "5",
isenabled: true
},
{
parent: "CostCenterDetail",
ishidden: false,
level: 1,
recordname: "CostCenter",
isrequired: false,
inputtype: "text",
issearchable: false,
label: "Created User",
posx: 1,
fieldname: "CreateUserID",
posy: 4,
seq: "6",
isenabled: false
},
{
parent: "CostCenterDetail",
ishidden: false,
level: 1,
recordname: "CostCenter",
isrequired: false,
inputtype: "date",
issearchable: false,
label: "Created User",
posx: 2,
fieldname: "CreateDate",
posy: 4,
seq: "7",
isenabled: false
},
{
parent: "CostCenterDetail",
ishidden: false,
level: 1,
recordname: "CostCenter",
isrequired: false,
inputtype: "date",
issearchable: false,
label: "Created User",
posx: 2,
fieldname: "UpdateDate",
posy: 5,
seq: "9",
isenabled: false
},
{
parent: "CostCenterDetail",
ishidden: false,
level: 1,
recordname: "CostCenter",
isrequired: true,
inputtype: "date",
issearchable: false,
label: "Effective Date",
posx: 1,
fieldname: "Effdt",
posy: 1,
seq: "3",
isenabled: true
},
{
posx: 1,
fieldname: "CostCenterDetail",
posy: 2,
ishidden: false,
level: 0,
recordname: "Dummy",
isrequired: false,
inputtype: "scroll",
issearchable: false,
label: "Cost Center Detail",
seq: "2",
isenabled: true
},
{
parent: "CostCenterDetail",
ishidden: false,
level: 1,
recordname: "CostCenter",
isrequired: false,
inputtype: "text",
issearchable: false,
label: "Created User",
posx: 1,
fieldname: "UpdateUserID",
posy: 5,
seq: "8",
isenabled: false
},
{
parent: "CostCenterDetail",
ishidden: false,
level: 1,
recordname: "CostCenter",
isrequired: true,
inputtype: "text",
issearchable: false,
label: "Status",
posx: 2,
fieldname: "Status",
posy: 1,
seq: "4",
isenabled: true
}
]
}
Вот проблема. Я хочу, чтобы цикл мой json на моем контроллере, поэтому каждый раз, когда я нахожу, что мой «уровень» менялся, мне нужно добавить это «[]», поэтому мои данные «level: 1» будут внутри нового массива.
пример:
{
forms : [
{
level:0,
---data--
[ {
level : 1,
--- data---
}
]
}
]
}
вот мой отдых контроллер:
@RequestMapping(value = "/alltable" ,method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseStatus(value = HttpStatus.OK)
public String test() {
JSONObject outerObject = new JSONObject();
outerObject.put("forms", pspnlRepository.findAll());
return outerObject.toString();
}
Как я Переберите мой JSON и добавить новый массив внутри моей JSON? Любая помощь будет настолько полезной Спасибо!
EDIT
Вот мой репозиторий код:
public interface pspnlRepository extends CrudRepository<pspnlfield, Long>{
Iterable<pspnlfield> findAll();
}
1. Что вы пробовали? 2. Вы можете попробовать использовать Gson ... JsonArray и JsonElement – Atul
Я пытаюсь использовать jsonarray, но я не знаю, как искать определенный ключ и добавлять [] внутри @Atul –
«формы» - это JsonArray, который представляет собой набор JsonObjects. Вы повторяете цикл и проверяете JsonObject и находите значение с помощью jsonObject.get («level») ... дайте мне знать, если вам нужна дальнейшая помощь. – Atul