2016-08-14 32 views
0

我有一個JSON文件名爲items.json,這就是被包含在文件中:Java - 從JSON文件中讀取JSON並打印出每個元素?

[ 
    { 
    "id": 8484, 
    "name": "David", 
    "height": "6", 
    "weight": 165, 
    } 
] 

我試圖用GSON打印出來的名稱和編號。

我希望它打印出來:

David 8484 

我搜索了很多例子,但沒有工作,爲這個特殊的情況下,或者他們做,但我是一個初學者,需要簡化。感謝您的任何幫助,您可以提供。

所以我的問題是我怎麼能做到這一點?我將使用當前不能在一分鐘內運行的代碼編輯此問題,對不起。

+1

目前爲止你有什麼代碼? –

+0

對不起剛纔意識到它,將在第二個 – David

+0

編輯它使用傑克遜JSON庫,並使這很容易。 – duffymo

回答

1

首先,您向我們展示的JSON不正確。有效之一爲:

[ 
    { 
    "id": 8484, 
    "name": "David", 
    "height": "6", 
    "weight": 165 
    } 
] 

必須刪除最後一個逗號。

如何使用Gson?這很容易。 您需要一個將JSON表示爲POJO(Plain Old Java Object)的類。 POJO就像骨架一樣。對於你來說,我會寫這樣的事:

public class Person { 
    public int id; 
    public String name; 
    public int height; 
    public int weight; 
} 

然後用GSON這樣的:

Gson gson = new Gson(); 
String json = "[{\"id\": 8484, \"name\": \"David\", \"height\": \"6\", \"weight\": 165}]"; 
//Because your JSON has array structure we need to give Gson array of our class 
Person[] person = gson.fromJson(json, Person[].class); 
//It will print: David 8484 
System.out.println(person[0].name + " " + String.valueOf(person[0].id)); 

我們不需要給JSON字符串,但FE。作爲JSON文件的讀取器(FileReader)。

如果這沒有幫助,你可能沒有Gson在你的項目中,但這是另一個問題。這裏是Gson的用戶指南:Gson User guide