[英]How to access the nested field in json using Java?
我有一個很大的JSON文件(demo.json)。 看起來是這樣的:
{
"preview":false,
"result":{
"search_term":"rania",
"request_time":"Sat Apr 01 12:47:04 -0400 2017",
"request_ip":"127.0.0.1",
"stats_type":"stats",
"upi":"355658761",
"unit":"DR",
"job_title":"Communications Officer",
"vpu":"INP",
"organization":"73",
"city":"Wash",
"country":"DC",
"title":"Tom",
"url":"www.demo.com",
"tab_name":"People-Tab",
"page_name":"PEOPLE",
"result_number":"5",
"page_num":"0",
"session_id":"df234f468cb3fe8be",
"total_results":"5",
"filter":"qterm=rina",
"_time":"2017-04-01T12:47:04.000-0400"
}
}
{"preview"......}
{"preview"......}
....
我想訪問結果中的搜索詞和page_name,並將它們轉換為字符串。 下面是我的java代碼不起作用:
BufferedReader br = new BufferedReader(new FileReader("demo.json"));
String line;
while ((line = br.readLine()) != null) {
JSONParser parser = new JSONParser();
Object obj = parser.parse(line);
JSONObject jsonObject = (JSONObject) obj;
String searchterm= (String) jsonObject.get("search_term");
String page_name = (String) jsonObject.get("page_name");
}
我不熟悉如何訪問嵌套字段並將其轉換為字符串。 任何幫助表示贊賞。
boolean preview = jsonObject.get("preview");
JSONObject result = jsonObject.getJSONObject("result");
String search_term = result.getString("search_term");
String page_name = result.getString("page_name");
您可以使用Gson之類的庫將數據轉換為Map
BufferedReader br = new BufferedReader(new FileReader("demo.json"));
String line;
StringBuilder builder=new StringBuilder();
while ((line = br.readLine()) != null) {
builder.append(line);
}
Type type = new TypeToken<Map<String, String>>(){}.getType();
Map<String, String> myMap = gson.fromJson(builder.toString(), type);
您可以使用myMap獲取json鍵的值。 對於嵌套鍵,您可以再次將其再次轉換為Map。
使用ObjectMapper將JSON轉換為PoJo,然后使用它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.