1
我相信我需要創建一個JsonReader對象並調用其中一個Json靜態方法,但是我無法從我的file.json中讀取數據。如何使用javax.json包從JSON文件中讀取數據?
看來創建閱讀器方法要求輸入是一個字符串。我應該繼續嘗試讓我的整個JSON文件被解釋爲一個字符串嗎?
我相信我需要創建一個JsonReader對象並調用其中一個Json靜態方法,但是我無法從我的file.json中讀取數據。如何使用javax.json包從JSON文件中讀取數據?
看來創建閱讀器方法要求輸入是一個字符串。我應該繼續嘗試讓我的整個JSON文件被解釋爲一個字符串嗎?
假設你有文件file.json
這樣的JSON數據:
{
"name": "Jack",
"age" : 13,
"isMarried" : false,
"address": {
"street": "#1234, Main Street",
"zipCode": "123456"
},
"phoneNumbers": ["011-111-1111", "11-111-1111"]
}
隨着javax.json
可以解析這個文件是這樣說的:
public class Example throws Exception {
public static void main(String[] args) {
InputStream fis = new FileInputStream("file.json");
JsonReader reader = Json.createReader(fis);
JsonObject personObject = reader.readObject();
reader.close();
System.out.println("Name : " + personObject.getString("name"));
System.out.println("Age : " + personObject.getInt("age"));
System.out.println("Married: " + personObject.getBoolean("isMarried"));
JsonObject addressObject = personObject.getJsonObject("address");
System.out.println("Address: ");
System.out.println(addressObject.getString("street"));
System.out.println(addressObject.getString("zipCode"));
System.out.println("Phone : ");
JsonArray phoneNumbersArray = personObject.getJsonArray("phoneNumbers");
for (JsonValue jsonValue : phoneNumbersArray) {
System.out.println(jsonValue.toString());
}
}
}
非常感謝。我想我會嘗試使用Gson,因爲它看起來更強大。在Gson中是否有與InputStream等價的函數fis = new FileInputStream(「file.json」); ? – ekeen4
@ ekeen4如果您需要Gson示例,請參考[使用GSON解析JSON文件](http://stackoverflow.com/questions/16377754/parse-json-file-using-gson) –