서블릿의 HttpServletRequest
에서 JSONObject
을 얻으려면 어떻게해야합니까?String에서 JSONObject 가져 오기
답변
매우 간단합니다 :
JSONObject o = new JSONObject(request.getParameter("WHATEVER"));
편집 : 당신이 JSON-lib 디렉토리를 사용하기 때문에, 그것은 당신을 위해
JSONObject o = (JSONObject) JSONSerializer.toJSON(request.getParameter("WHATEVER"));
을합니다.
JSONObject에 문자열 인수가있는 생성자가 없습니다. 사용중인 API는 무엇입니까? –
json.org의 JSON 라이브러리를 사용하고 있습니다. –
GSON은 Java 기반의 JSON 라이브러리로서 매우 유용합니다.
GSON 좋은 진짜 좋은 lib –
JSONObject(java.lang.String
)을 참조하십시오. 유효한 JSON 인 String을 전달하는 경우 JSONObject
객체가 생성됩니다. 생성자는 JSONException
을 던집니다. 그래서 처리해야합니다. 잘못된 JSON을 보내는 경우에도 마찬가지입니다.
정말 어떤 일을하는지에 따라 다릅니다. 대부분 JSONObject는 bean getter를 사용하여 JSON 객체를 생성합니다 (bean을 생성자에 전달하는 경우). 그렇지 않으면 이름의 String 배열과 함께 객체를 전달할 수 있습니다. 여기에서 JSONObject
은 리플렉션을 사용하여 객체의 public 멤버를 찾습니다. 그런 다음이 객체에 대한 키로 제공 한 이름을 사용합니다.
JSONObject
은 아무런 문제없이 Map
유형의 항목을 처리합니다. 그러나 개체가 List
인 경우 JSONArray
을 사용해야합니다. 또 다른 문제는 이 포함 된 Map
인 경우입니다. 그런 다음 어떤 이유에서 JSONObject
은 List
이라는 것을 알 수 없으며 원하는 문자열이 아닌 List
의 표준 문자열 표현을 사용합니다. 이를 처리하는 유일한 방법은 Map
을 반복하고 JSONObject
을 수동으로 작성하는 것입니다.
지금까지 귀하의 질문에, 당신은 JSON을 반환합니다 행동을 가진 서블릿이 있다고 가정합니다. 이 경우 새 JSONObject
을 만들고 PrintWriter
~ 및 jsonObject.toString()
을 사용하여 JSON을 출력하십시오.
조금만하고 있습니다. 어려운 방법. 분명히 이것을 할 수있는 방법이 있습니다. JSON이 아닌 일반적인 요청 매개 변수로 보내면됩니다. jQuery.serialize()
을 사용하여 모든 양식 필드를 매개 변수로 수집 할 수 있습니다. 다음은 JSP가 같이 방법의 킥오프 예 : 그것은 거 jQuery form 플러그인
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
System.out.println(username + "," + password);
response.getWriter().write("OK"); // You can write JSON string here.
}
: 여기
<!DOCTYPE html>
<html lang="en">
<head>
<title>Test</title>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
$(document).ready(function() {
$('#form').submit(function() {
$form = $(this);
$.post($form.attr('action'), $form.serialize(), function(response) {
alert(response); // "OK"
});
return false;
});
});
</script>
</head>
<body>
<form id="form" action="register" method="post">
<input type="text" name="username">
<input type="password" name="password">
<input type="submit">
</form>
</body>
</html>
는 그리고는 url-pattern
/register/*
의 수신 대기 서블릿이 같이 할 수있는 방법입니다 더 투명해질 수 있습니다. 당신이 진짜 JSON 데이터를 반환하는 경우
$(document).ready(function() {
$('#form').ajaxForm(function(response) {
alert(response); // "OK"
});
});
jQuery를 다시 서블릿에서 대응하기가 쉽다.jQuery를에
Map<String, Object> data = new HashMap<String, Object>();
if (userDAO.exist(username)) {
data.put("success", false);
data.put("message", "Username in use, please choose another");
} else {
userDAO.create(username, password);
data.put("success", true);
data.put("message", "User successfully registered");
}
response.setContentType("application/json");
response.getWriter().write(new Gson().toJson(data)); // Gson = Google Gson.
다음 : 예를 들어 당신이 된 JSONObject 의 net.sf.json.JSONObject
버전 (이것은 json.org 버전되지 않습니다) 사용하고 있어야합니다 같은
$(document).ready(function() {
$('#form').ajaxForm(function(data) {
$('#message').addClass(data.success ? 'success' : 'error').text(data.message).show();
});
});
질문은 jQuery 또는 자바 스크립트 전혀 관련이없는,이 답변은 구약입니다. –
보인다.
obj
이 getter 및 setter와 하나
- 유효한 JSON 형식의 문자열
- Bean에 POJO이다 어디
net.sf.json.JSONObject
버전은 단순히JSONObject.fromObject(Object obj)
을 사용하십시오.
- 1. JSONObject 예외
- 2. 출력에 된 JSONObject 명확하게
- 3. 기타 된 JSONObject
- 4. 가져 오기 배열 가져 오기
- 5. Json에서 문자열 가져 오기?
- 6. std :: string에서 NULL을 삭제하십시오.
- 7. JSONObject []와 JSONObject의 차이점은 무엇입니까?
- 8. 플러그인 가져 오기 UTI 유형 가져 오기
- 9. String에서 엄격한 비교를 사용해야합니까?
- 10. String에서 XmlNode의 innerText
- 11. WeakReference는 String에서 작동합니까?
- 12. String에서 XDocument 채우기
- 13. 목표 C의 기본 String에서 문자열의 일부를 가져 오는 방법
- 14. 파일 가져 오기/불러 오기
- 15. String에서 객체를 만드는 방법은 무엇입니까?
- 16. String에서 org.xml.sax.InputSource를 어떻게 만듭니 까?
- 17. String에서 LinkedList로 java 인수 캐스팅
- 18. boost :: variant는 std :: string에서 작동합니까?
- 19. Google 캘린더 용 JSONArray 및 JSONObject
- 20. Json에서 JsonObject 트리를 읽는 GSON이 작동하지 않습니다.
- 21. Android - JSONObject 및 JSONArrays를 구문 분석하는 방법
- 22. html 파일을 Excel로 가져 오기 - 색상 표 오른쪽으로 가져 오기
- 23. 파이썬 와일드 카드 가져 오기 이름 지정된 가져 오기
- 24. SVN 가져 오기 강제로 기존 파일 가져 오기
- 25. Regex - 문자열 가져 오기/모든 문자열 가져 오기?
- 26. 웹 페이지 가져 오기, 다른 결과 가져 오기?
- 27. 가져 오기 형식을 유지하면서 데이터를 Excel에서 가져 오기
- 28. 가져 오기 테이블 (IT) 대 가져 오기 주소 테이블 (IAT)
- 29. 모듈 수준의 가져 오기 대신 테스트 당 모듈을 가져 오기?
- 30. Magento - 차이 모든 제품 가져 오기/가져 오기 제품 재고?
검색 한 결과, 읽었습니까? – BoltClock
무엇'JSONObject'? – Bozho
@Bozho는 좋은 지적입니다. Java 용 JSON 라이브러리가 많이 있으며 그 중 많은 클래스가 해당 클래스 이름을 사용하기를 기대합니다. –