2012-06-05 2 views
1

나는 자바로 서블릿을 가지고 있는데 어떻게하면 다음을 할 수 있는지 알고 싶다.String을 Json으로 변환하는 방법

나는 값의 이름을 가진 String 변수를 가지고 있으며, 변수가 {"name": "David"} 인 Json을 만들고 싶다.

어떻게하면됩니까?

나는 다음과 같은 코드를 가지고 있지만 오류가 발생합니다 :

Serious: Servlet.service() for servlet threw 
    exception servlet.UsuarioServlet java.lang.NullPointerException 
       at servlet.UsuarioServlet.doPost (UsuarioServlet.java: 166): 

라인

String myString = new JSONObject().put("name", "Hello, World!").toString(); 

답변

3

정확한 문제는 찬드라에 의해 설명에. 그리고 그의 제안을 사용하여 JSONObject를 사용할 수 있습니다. 지금까지 보았 듯이 디자이너는 체인화와 같은 속성을 염두에 두지 않았으므로 다른 언어 나 라이브러리의 성공을 가져 왔습니다.

매우 유용한 Google Gson을 사용하는 것이 좋습니다. 지도에

public class MyClass { 
    public String name = "Hello, World!"; 
} 

private Gson gson = new GsonBuilder().create(); 
PrintWriter writer = httpServletResponse.getWriter(); 
writer.write(gson.toJson(yourObject)); 
+0

1도를 자바

class Phone { @SerializedName("phoneNumber") private String phoneNumebr; public void setPhoneNumber(String phoneNumebr) { this.phoneNumebr = phoneNumebr; } public String getPhoneNumebr(){ return phoneNumber; } } 

// 사용

! –

2

json으로 라이브러리를 기반 :

아이디어는 당신이 예를 들어 클래스를 정의 할 수 있습니다 : 그것은 디코딩 및 엔코딩을 매우 편리 모두 있습니다. 따라서 put은 기본적으로이 키와 연결된 이전 값을 반환하므로 null 포인터 예외 (http://docs.oracle.com/javase/1.4.2/docs/api/java/util/HashMap.html#put%28java.lang.Object,%20java.lang.Object%29)

다음과 같이 코드를 다시 작성하여 문제를 해결할 수 있습니다.

JSONObject jsonObject1 = new JSONObject(); 
jsonObject1.put("name", "Hello, World"); 
String myString = jsonObject1.toString(); 
+0

정확한 버그가 나에게 직접적으로 대답하기 때문에 나는 당신을 업 그레 이드한다. –

1

GSON으로 시도한 GSON은 JSONString을 Java 클래스 객체로 직접 변환합니다.

예 :

String jsonString = {"phoneNumber": "8888888888"} 

새로운 클래스를 만들 수는 : 메신저 사촌

Gson gson = new Gson(); 
Phone phone = gson.fromJson(jsonString, Phone.class); 

System.out.println(" Phone number is "+phone.getPhoneNumebr()); 
관련 문제