如何在Java中解析JSON

我有如下JSON文本。 如何解析它以得到pageNamepagePicpost_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"
         }
    ]
}

#1樓

quick-json解析器很是簡單,靈活,快速且可自定義。 試試吧 json

特徵: app

  • 符合JSON規範(RFC4627)
  • 高性能JSON解析器
  • 支持靈活/可配置的解析方法
  • 可配置驗證任何JSON層次結構的鍵/值對
  • 易於使用#佔地面積小
  • 提升開發人員友好性並易於跟蹤異常
  • 可插拔的自定義驗證支持-能夠經過在遇到時配置自定義驗證器來驗證鍵/值
  • 驗證和非驗證解析器支持
  • 支持兩種類型的配置(JSON / XML),以使用快速JSON驗證解析器
  • 須要JDK 1.5
  • 不依賴外部庫
  • 經過對象序列化支持JSON生成
  • 支持在解析過程當中選擇集合類型

能夠這樣使用: 函數

JsonParserFactory factory=JsonParserFactory.getInstance();
JSONParser parser=factory.newJsonParser();
Map jsonMap=parser.parseJson(jsonString);

#2樓

我認爲最佳作法應該是經過仍在進行中的官方Java JSON APIpost


#3樓

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


#4樓

這讓我很震驚。 您能夠只將包含JSON的String傳遞給默認org.json包中的JSONObject的構造函數。 code

JSONArray rootOfPage =  new JSONArray(JSONString);

作完了 放下麥克風 。 這也適用於JSONObjects 。 以後,您能夠使用Objectsget()方法瀏覽Objects的層次結構。 對象


#5樓

  1. 若是要從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);
  2. 可是,若是隻是想解析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");
相關文章
相關標籤/搜索