2014-11-24 31 views
-1

我有一個JSON字符串是這樣的:JSONArray到POJO

[{"name":"foo","slug":"foo2","locales":["foo3"],"hostname":"foo4","region_tag":"foo5"},{"name":"foo","slug":"foo2","locales":["foo3"],"hostname":"foo4","region_tag":"foo5"},{"name":"foo","slug":"foo2","locales":["foo3"],"hostname":"foo4","region_tag":"foo5"},{"name":"foo","slug":"foo2","locales":["foo3"],"hostname":"foo4","region_tag":"foo5"}] 

我是新在此。我該如何解析這個JSONArray到POJO?

+0

參見[這](http://stackoverflow.com/a/27080027/1205368)閱讀更多關於傑克遜。你將不得不改變POJO的定義,但這個想法是一樣的。 – Salem 2014-11-24 14:26:30

+0

順便說一下,我使用傑克遜。 – dummyDroid 2014-11-24 14:33:56

+0

http://www.mkyong.com/java/how-to-convert-java-object-to-from-json-jackson/? – Salem 2014-11-24 14:36:14

回答

1

解析器是用於將JSON內容標記爲標記和關聯數據的對象。這是讀取JSON內容的最低級別。

最常見的創建解析器的方法是從外部來源(文件,HTTP請求流)或緩衝數據(字符串,字節數組/緩衝區)。爲此org.codehaus.jackson.JsonFactory擁有豐富的一套方法來構建解析器,如:

JsonFactory jsonFactory = new JsonFactory(); // or, for data binding, org.codehaus.jackson.mapper.MappingJsonFactory 
JsonParser jp = jsonFactory.createJsonParser(file); // or URL, Stream, Reader, String, byte[] 

另外,如果你碰巧有一個ObjectMapper,也有ObjectMapper.getJsonFactory(),你可以用它來重用工廠它已經(因爲(重新)使用JsonFactory實例是一個性能最佳實踐)。

但也可以創建從備用源解析器:

1.3版本開始,可以讀根JsonNode的內容(參見樹模型)通過JsonParser jp = node.traverse() 1.5版本開始可以緩衝底層JSON令牌,org.codehaus.jackson.util.TokenBuffer ,稍後創建JsonParser來讀取內容(用於重放流)。 從這些源中讀取JSON令牌比從文本表示中重新解析JSON內容效率更高。

這非常簡單。試試這個:http://www.youtube.com/watch?v=vBkuLu-ycEc ,你可以從下面的鏈接 http://wiki.fasterxml.com/JacksonStreamingApi

+0

請提供更多關於如何使用傑克遜的信息,而不僅僅是提供一個鏈接。 – MarchingHome 2014-11-24 14:42:45

+0

其實這個鏈接會給你一個關於傑克遜的清晰的想法,以及它是如何工作的一步一步的 – 2014-11-24 14:45:30

+0

我知道,但這不是StackOverflow想要看到答案的方式。請閱讀指南:http://stackoverflow.com/help/how-to-answer。它清楚地表明:「總是引用重要環節中最相關的部分。」 – MarchingHome 2014-11-24 14:48:56