2013-11-14 114 views
-2

我正在開發這個應用程序,它在用戶登錄並按下提交按鈕後,會使用我的本地主機進行檢查。到目前爲止,一切都很好。爲了解析來自localhost的數據,我必須使用JSON。但是,恰巧查詢不包含方括號。因此我決定使用GSON解析數據。爲了測試應用程序的功能,我的localhost中只有一個查詢:{ 'Android' :{'statues':'1'}},我唯一想分析的值是statues。轉換JSON到GSON

問題是,我該怎麼做?是使用GSON一個正確的選擇還是有另一種方式?

乾杯。

回答

1

我認爲你在這裏混淆了一些東西。

你明顯地開發了一個REST服務,你的Android應用程序通過JSON「與之對話」。 JSON是一種具有定義語法的數據格式。如果這個語法不正確,那很糟糕。如果應用程序的語法不好,您的服務應該將400(錯誤請求)返回到您的應用程序。如果來自服務的問題很嚴重,請修正錯誤。在解決語法問題之前,您不必擔心其他問題。

現在,當您的應用程序解析JSON時,您可以使用許多庫來序列化Java對象和反序列化JSON。 GSON是其中之一。另一個是Jackson。還有很多其他的。哪一個「更好」是一個意見問題。選擇哪個感覺最簡單,滿足您的需求,並積極維護。

奇怪的是你的JSON似乎有元數據應該在的數據。我想應該是這樣的:

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

而且你已經有了這個

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

    //getters and setters 
} 

然後使用GSON,你會做這樣的事情:

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

希望幫助

+0

謝謝你的關注。 這聽起來非常好,它實際上解決了我很多困境和模棱兩可的問題。 再次感謝 – Sean

+0

很高興爲您提供幫助。祝你的項目好運! – Vidya

+0

順便說一句,如果我使用類(MyObject),我怎麼能把它與我的本地主機?它捕捉到課堂的價值。 gson.fromJson(json,MyObject.class)是否完成這項工作? – Sean

0

不確定你的意思是「查詢不包含方括號」。方括號表示JSON中的數組。有關如何解析JSON的一般信息,請查看以下問題:How to parse JSON in Java

+0

也許我無法描述我的意思。但無論如何,感謝您的鏈接。 – Sean