我有如下JSON文本。 如何解析它以得到pageName
, pagePic
, post_id
等的值? java
{ "pageInfo": { "pageName": "abc", "pagePic": "http://example.com/content.jpg" }, "posts": [ { "post_id": "123456789012_123456789012", "actor_id": "1234567890", "picOfPersonWhoPosted": "http://example.com/photo.jpg", "nameOfPersonWhoPosted": "Jane Doe", "message": "Sounds cool. Can't wait to see it!", "likesCount": "2", "comments": [], "timeOfPost": "1234567890" } ] }
quick-json解析器很是簡單,靈活,快速且可自定義。 試試吧 json
特徵: app
能夠這樣使用: 函數
JsonParserFactory factory=JsonParserFactory.getInstance(); JSONParser parser=factory.newJsonParser(); Map jsonMap=parser.parseJson(jsonString);
我認爲最佳作法應該是經過仍在進行中的官方Java JSON API 。 post
org.json庫易於使用。 下面的示例代碼: 性能
import org.json.*; JSONObject obj = new JSONObject(" .... "); String pageName = obj.getJSONObject("pageInfo").getString("pageName"); JSONArray arr = obj.getJSONArray("posts"); for (int i = 0; i < arr.length(); i++) { String post_id = arr.getJSONObject(i).getString("post_id"); ...... }
您能夠從如下位置找到更多示例: Java解析JSON ui
可下載的jar: http : //mvnrepository.com/artifact/org.json/json spa
這讓我很震驚。 您能夠只將包含JSON的String
傳遞給默認org.json包中的JSONObject的構造函數。 code
JSONArray rootOfPage = new JSONArray(JSONString);
作完了 放下麥克風 。 這也適用於JSONObjects
。 以後,您能夠使用Objects
的get()
方法瀏覽Objects
的層次結構。 對象
若是要從JSON建立Java對象,反之亦然,請使用GSON或JACKSON第三方jar等。
//from object to JSON Gson gson = new Gson(); gson.toJson(yourObject); // from JSON to object yourObject o = gson.fromJson(JSONString,yourObject.class);
可是,若是隻是想解析JSON字符串並獲取一些值,(或從頭開始建立JSON字符串以經過電線發送),只需使用包含JsonReader,JsonArray,JsonObject等的JaveEE jar。您可能要下載該實現規格,例如javax.json。 使用這兩個jar,我能夠解析json並使用值。
這些API實際上遵循XML的DOM / SAX解析模型。
Response response = request.get(); // REST call JsonReader jsonReader = Json.createReader(new StringReader(response.readEntity(String.class))); JsonArray jsonArray = jsonReader.readArray(); ListIterator l = jsonArray.listIterator(); while ( l.hasNext() ) { JsonObject j = (JsonObject)l.next(); JsonObject ciAttr = j.getJsonObject("ciAttributes");