簡體   English   中英

如何將json數據存儲在Arraylist中?

[英]How to store json data in an Arraylist?

我有以下代碼,我將來自Elasticsearch的json數據存儲在本地驅動器中存儲的文件中。 相反,我想將數據存儲在Arraylist中,因此我可以將其傳遞給UI以顯示在前端。

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"
                }
            }
        ]
    }
}

在我的數組列表中,我只想存儲ID和Number。

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

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;        
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM