2013-11-14 2 views
-2

나는이 응용 프로그램을 개발 중이며 사용자가 로그인 한 후 제출 버튼을 누르면 내 로컬 호스트에서 확인합니다. 지금까지 모든 것이 좋습니다. localhost에서 데이터를 구문 분석하려면 JSON을 사용해야했습니다. 그러나 쿼리에 대괄호가 포함되어 있지 않습니다. 그래서 나는 데이터를 파싱하기 위해 GSON을 사용하기로 결정했다. 응용 프로그램의 기능을 테스트하기 위해 내 localhost에는 하나의 쿼리 만 있습니다. { 'Android' :{'statues':'1'}}이며 구문 분석하려는 유일한 값은 상입니다.JSON을 GSON으로 변환

질문 : 어떻게해야합니까? GSON을 올바르게 선택했거나 다른 방법이 있습니까?

건배.

답변

1

여기 몇 가지를 혼란스럽게 생각합니다.

Android 앱이 JSON을 통해 "대화"하는 REST 서비스를 개발 한 것은 분명합니다. JSON은 구문이 정의 된 데이터 형식입니다. 이 구문이 올바르지 않으면 문제가 발생합니다. 앱에서 구문이 잘못되었다고 판단되면 앱에서 400 (잘못된 요청)을 다시 앱에 던져야합니다. 서비스에서 오는 것이 좋지 않으면 버그를 수정하십시오. 구문 문제를 해결할 때까지는 다른 것에 대해 걱정할 필요가 없습니다.

이제 JSON을 응용 프로그램에서 구문 분석 할 때 Java 객체를 직렬화하고 JSON을 비 직렬화 할 수있는 많은 라이브러리를 마음대로 사용할 수 있습니다. GSON은 하나입니다. Jackson은 또 하나입니다. 다른 많은 것들이 있습니다. "더 나은"것은 의견의 문제입니다. 가장 쉬운 방법을 선택하고, 필요한 것을 충족 시키며, 적극적으로 유지 관리하십시오.

JSON이 메타 데이터가 있어야하는 데이터가있는 것 같습니다. 나는 다음과 같이해야한다고 생각 :

MyObject o = gson.fromJson(json, MyObject.class); 

희망하는 데 도움이 :

{ 'phoneType' : 'Android', 'statues': 1} 

을 그리고 당신은 GSON를 사용하는 다음이

public class MyObject { 
    private String phoneType; 
    private int statues; 

    //getters and setters 
} 

이있을 것이다, 당신은 이런 식으로 뭔가를 할 것입니다

+0

감사합니다. 이 사운드는 완벽하게 훌륭하며 실제로 많은 딜레마와 모호한 점을 해결했습니다. 다시 한 번 감사드립니다. – Sean

+0

도와 드리겠습니다. 프로젝트에 행운을 빌어 요! – Vidya

+0

btw, 클래스 (MyObject)를 사용하는 경우이를 로컬 호스트에 어떻게 연관시킬 수 있습니까? 클래스의 값을 캐치합니다. gson.fromJson (json, MyObject.class)이 작업을 수행합니까? – Sean

0

"쿼리에 대괄호가 없습니다"라는 것이 확실하지 않습니다. 대괄호는 JSON의 배열을 나타냅니다. JSON을 구문 분석하는 방법에 대한 일반적인 정보는 How to parse JSON in Java을 참조하십시오.

+0

어쩌면 내가 분명히 의미하는 것을 설명하지 못할 수도 있습니다. 그러나 어쨌든, 링크를 주셔서 감사합니다. – Sean