String json = "{\"loginForm\": [{\"formType\": \"questionAndAnswer\",\"id\": 164422,\"row\": [{\"label\": \"What is the name of your state?\",\"field\": [{\"id\":\"SQandA--QUESTION_1-1\",\"value\": \""+answer1+"\"}]},{\"label\": \"What is the name of your first school\",\"field\": [{\"id\":\"SQandA--QUESTION_2-2\",\"value\": \""+answer2+"\"}]}]}],"+dataset+"}";
этот json содержит вопросы и ответы в нем, и он жестко закодирован в моем коде, что мне делать, чтобы динамически его генерировать, поскольку я хочу удалить жесткий код и вызвать его динамически.




Вы можете создать файл класса со своими полями json, а затем преобразовать объект класса в json с помощью API Джексона.
private String getJsonFromJava (Object obj) {
ObjectMapper mapper = new ObjectMapper();
String jsonInString = "";
try {
jsonInString = mapper.writeValueAsString(obj);
} catch (JsonProcessingException e) {
System.out.println("Unable to parse object to prepare JSON string", e);
}
return jsonInString;
}
Вам нужно написать логику для создания json с использованием входных данных. Если вы создаете json в JS, посмотрите пример кода ниже. Или вы можете сделать тот же логин на стороне сервера - java и т. д.?
function createJSON() {
jsonObj = [];
$("input[questions]").each(function() {
var q= $(this).attr("Question");
var ans= $(this).val();
item = {}
item ["question"] = id;
item ["answer"] = ans;
jsonObj.push(item);
});
console.info(jsonObj);
}
Может с помощью
String.format()?