[英]How to get JSON data from an url in Java?
我已經簽出了很多頁面,但是大多數教程和腳本都使用這種JSON輸出類型返回錯誤代碼。 那么,我如何能夠從Java中的JSON中提取數據?
[
{
"user":{"id":"1","username":"user1"},
"item_name":"item1",
"custom_field":"custom1"
},
{
"user":{"id":"2","username":"user2"},
"item_name":"item2",
"custom_field":"custom2"
},
{
"user":{"id":"3","username":"user3"},
"item_name":"item3",
"custom_field":"custom3"
}
]
如果要使用Gson,則首先聲明用於容納每個元素和子元素的類:
public class MyUser {
public String id;
public String username;
}
public class MyElement {
public MyUser user;
public String item_name;
public String custom_field;
}
然后,聲明一個最外面的元素的數組(因為在這種情況下,JSON對象是一個JSON數組),並對其進行分配:
MyElement[] data = gson.fromJson (myJSONString, MyElement[].class);
然后,您只需訪問data
元素。
要記住的重要一點是,您聲明的屬性的名稱和類型應與JSON字符串中的屬性名稱和類型匹配。 例如“ id”,“ item_name”等。
您可以嘗試JSON簡單
http://code.google.com/p/json-simple/
例:
JSONParser jsonParser = new JSONParser();
JSONArray jsonArray = (JSONArray) jsonParser.parse(jsonDataString);
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject obj = (JSONObject) jsonArray.get(i);
//Access data with obj.get("item_name")
}
只需注意檢查是否為空/在進行鑄造等時要小心。
如果您嘗試在Java中序列化/反序列化json,我建議您使用Jackson。 http://jackson.codehaus.org/
下載Jackson后,您可以將JSON字符串反序列化為與JSON中的對象匹配的對象。
Jackson提供了可以附加到您的類的注釋,這使得反序列化非常簡單。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.