2016-03-30 29 views
2

我有以下代碼,我在Elasticsearch中存儲Json數據到存儲在本地驅動器中的文件中。相反,我想將數據存儲在Arraylist中,所以我可以將它傳遞給UI以在前端顯示。如何將json數據存儲在Arraylist中?

try {   
    HttpGet request = new HttpGet("http://localhost:9200/indexname/_search?pretty=1&size=100&q=name:%22Test%22");    
    HttpResponse resp = client.execute(request); 
    HttpEntity entity = resp.getEntity(); 

    byte[] buffer = new byte[1024]; 
    if (entity != null) { 
     InputStream input = entity.getContent(); 
     FileWriter file = new FileWriter("/localpath/data.json"); 

     try { 
      int bytesRead = 0; 
      BufferedInputStream in = new BufferedInputStream(input); 

      while ((bytesRead = in.read(buffer)) != -1) { 
       String chunk = new String(buffer, 0, bytesRead); 
       System.out.println(chunk); 
       file.write(chunk);     
      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } finally { 
      try { file.close(); inputStream.close(); } catch (Exception ignore) {} 
     }    
    } 
} 

的JSON數據的格式爲:

{ 
    "took": 9, 
    "timed_out": false, 
    "_shards": { 
     "total": 5, 
     "successful": 5, 
     "failed": 0 
    }, 
    "hits": { 
     "total": 1, 
     "max_score": 6.3519955, 
     "hits": [ 
      { 
       "_index": "indexname", 
       "_type": "status", 
       "_id": "eb825358-93d7-4a2f-9227-9b060cbc323a", 
       "_score": 6.3519955, 
       "_source": { 
        "name": "Test", 
        "ID": "ABCD", 
        "Number": "23222", 
        "SecCode": "124" 
       } 
      }, 
      { 
       "_index": "indexname", 
       "_type": "status", 
       "_id": "eb825358-93d7-4a2f-9227-9b060cbc323b", 
       "_score": 6.3519955, 
       "_source": { 
        "name": "Test", 
        "ID": "CDEF", 
        "Number": "5678", 
        "SecCode": "120" 
       } 
      } 
     ] 
    } 
} 

在我的ArrayList,我想存儲只是ID和號碼的。

任何幫助將不勝感激?謝謝

回答

0
public static List<Pattern> pattern(){ 
    ArrayList<Pattern> patterns = new ArrayList<>(); 
    Gson gson = new Gson(); 
    JsonParser jsonParser = new JsonParser(); 
    try { 
     BufferedReader bufferedReader = new BufferedReader(new FileReader("MyJsons/objects.json")); 
     JsonElement jsonElement = jsonParser.parse(bufferedReader); 

     //Create generic type 
     Type type = new TypeToken<List<Pattern>>() {}.getType(); 
     return gson.fromJson(jsonElement, type); 

    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    return patterns;   
} 
相關問題