我正在開發一個Android應用程序。該應用程序將數據作爲JSON字符串(大學和學生名單的名稱)並根據數據操作應用程序。創建對象與閱讀Json
什麼是更好的方法?
- 創建一個新對象,並解析JSON字符串到它,並以該對象的工作,或
- 保持JSON字符串,只需使用的JSONObject每當我需要從字符串中抓取信息
- 或者任何其他方式?
如果我正在使用新的對象,我該如何將應用程序中的其他活動與對象進行轉移(或共享)? 我知道對於字符串我們可以使用putextra()
。
我正在開發一個Android應用程序。該應用程序將數據作爲JSON字符串(大學和學生名單的名稱)並根據數據操作應用程序。創建對象與閱讀Json
什麼是更好的方法?
如果我正在使用新的對象,我該如何將應用程序中的其他活動與對象進行轉移(或共享)? 我知道對於字符串我們可以使用putextra()
。
使用對象。
我建議使用Jackson library, 是因爲它是非常快速和容易進入。
你可以在這裏找到的代碼示例:
http://www.mkyong.com/java/how-to-convert-java-object-to-from-json-jackson/
附: :Jackson不是這種方法的唯一庫>Jackson Vs. Gson
我會推薦解析字符串(或使用庫來爲你做這個!)並填充一個對象。這樣,模型對象就可以控制數據以及如何與其他對象共享數據,並使用內部數據結構來優化使用。如果你堅持使用JSON字符串,你最終會多次解析它以提取數據。
但是,您決定跨活動共享對象/字符串不應影響您如何對數據建模的決策。在任何情況下,您都可能最終將其傳遞給各種活動。
我幾乎總是將JsonObject解析爲一個特定的對象E.g.一流的大學。
這樣做的好處之一是,你可以很好地把它放入集合。例如。 HashMaps,Set或者直接List。將它作爲JsonObject處理時,您將無法輕鬆使用它。
如果Object繼承Comparable並且可以定義equals/toString/hashCode,那麼可以對其進行排序。
有一些其他的好處,但我認爲你會發現拿着這些數據在實際數據結構會給你最受益
我建議你使用對象了。
你可以使用Gson庫在json字符串和對象之間進行任何轉換。它非常非常容易使用。 http://code.google.com/p/google-gson/
要在其他活動之間傳輸數據,您可以使您的對象實現接口Serializable
,這樣您可以使用.putExtra()
並將其傳遞。
不客氣:) –
我可以通過一個對象(讓我們說大學)到另一個活動? –
你可以 - 它並不完全像人們希望的那樣微不足道,但它不是太糟糕:http://stackoverflow.com/questions/5621132/passing-custom-objects-between-activities –