我想从“结果”开始提取数组元素,如以下JSON响应中所示:
{
"bossresponse":{
"responsecode":"200",
"web":{
"start":"0",
"count":"42",
"totalresults":"89200000",
"results":[
{
"date":"",
"clickurl":"http:\/\/www.yahoo.com\/",
"url":"http:\/\/www.yahoo.com\/",
"dispurl":"www.<b>yahoo<\/b>.com",
"title":"<b>Yahoo<\/b>!",
"abstract":"Welcome to <b>Yahoo<\/b>!, the world's most visited home page. Quickly find what you're searching for, get in touch with friends and stay in-the-know with the latest news and ..."
},
{
"date":"",
"clickurl":"http:\/\/mail.yahoo.com\/",
"url":"http:\/\/mail.yahoo.com\/",
"dispurl":"mail.<b>yahoo<\/b>.com",
"title":"Sign in to <b>Yahoo<\/b>!",
"abstract":"Your World. Your Way. <b>Yahoo<\/b>! makes it easy to enjoy what matters most in your world. Best in class <b>Yahoo<\/b>! Mail, breaking local, national and global news, finance ..."
},
{
"date":"",
"clickurl":"http:\/\/groups.yahoo.com\/?ch=web&pub=fp-us&t=fp&sec=link&slk=defaultrough",
"url":"http:\/\/groups.yahoo.com\/?ch=web&pub=fp-us&t=fp&sec=link&slk=defaultrough",
"dispurl":"groups.<b>yahoo<\/b>.com\/?ch=web&pub=fp-us&t=fp&sec=link&slk=...",
"title":"<b>Yahoo<\/b>! Groups - Join or create groups, clubs, forums ...",
"abstract":"<b>Yahoo<\/b>! Groups offers free mailing lists, photo & file sharing, group calendars and more. Discuss hot topics, share interests, join online communities."
},
{
"date":"",
"clickurl":"http:\/\/homes.yahoo.com\/",
"url":"http:\/\/homes.yahoo.com\/",
"dispurl":"homes.<b>yahoo<\/b>.com",
"title":"<b>Yahoo<\/b>! Homes - Home for Sale and Rent, Makeovers, Design and ...",
"abstract":"Some <b>Yahoo<\/b>! Homes information is provided by our trusted partners. However, <b>Yahoo<\/b>! does not guarantee the accuracy or completeness of any third party content."
},
{
"date":"",
"clickurl":"http:\/\/en.wikipedia.org\/wiki\/Yahoo",
"url":"http:\/\/en.wikipedia.org\/wiki\/Yahoo",
"dispurl":"en.wikipedia.org\/wiki\/<b>Yahoo<\/b>",
"title":"<b>Yahoo<\/b>! - Wikipedia, the free encyclopedia",
"abstract":"<b>Yahoo<\/b>! Inc. (NASDAQ: YHOO) is an American multinational internet corporation headquartered in Sunnyvale, California, United States. The company is best known for its ..."
},
{
"date":"",
"clickurl":"http:\/\/taxes.yahoo.com\/",
"url":"http:\/\/taxes.yahoo.com\/",
"dispurl":"taxes.<b>yahoo<\/b>.com",
"title":"<b>Yahoo<\/b>! Finance - Personal Finance | Taxes",
"abstract":"Taxes - Read latest articles and guides, try our comprehensive calculators, tools, and get advice at <b>Yahoo<\/b>! Finance"
},
{
"date":"",
"clickurl":"http:\/\/omg.yahoo.com\/",
"url":"http:\/\/omg.yahoo.com\/",
"dispurl":"omg.<b>yahoo<\/b>.com",
"title":"omg! Celebrity gossip, news photos, babies, couples, hotties ...",
"abstract":"The latest celebrity gossip from <b>Yahoo<\/b>! omg! Get the latest news and gossip on the Hollywood celebrities with videos and photos."
},
{
"date":"",
"clickurl":"http:\/\/uk.yahoo.com\/",
"url":"http:\/\/uk.yahoo.com\/",
"dispurl":"uk.<b>yahoo<\/b>.com",
"title":"<b>Yahoo<\/b>! UK",
"abstract":"Welcome to <b>Yahoo<\/b>!, the world's most visited home page. Quickly find what you're searching for, get in touch with friends and stay in-the-know with the latest news and ..."
},
{
"date":"",
"clickurl":"http:\/\/smallbusiness.yahoo.com\/?s_fptrough=ysb_acq_smallbiz_20081001",
"url":"http:\/\/smallbusiness.yahoo.com\/?s_fptrough=ysb_acq_smallbiz_20081001",
"dispurl":"smallbusiness.<b>yahoo<\/b>.com\/?s_fptrough=ysb_acq_smallbiz...",
"title":"<b>Yahoo<\/b>! Small Business: Web Hosting, Domain Registration, E ...",
"abstract":"<b>Yahoo<\/b>! Small Business provides reliable web hosting for your website, domain name registration, web site design templates, e-commerce solutions for your ..."
},
{
"date":"",
"clickurl":"http:\/\/cricket.yahoo.com\/",
"url":"http:\/\/cricket.yahoo.com\/",
"dispurl":"cricket.<b>yahoo<\/b>.com",
"title":"<b>Yahoo<\/b>! Cricket - Live Cricket Score | Cricket News | Cricket ...",
"abstract":"Check out live cricket scores, cricket news headlines, cricket schedules & results and more from <b>Yahoo<\/b>! Cricket Includes ICC World Cricket League Championship 2012 ..."
},
{
"date":"",
"clickurl":"http:\/\/messenger.yahoo.com\/?i=1",
"url":"http:\/\/messenger.yahoo.com\/?i=1",
"dispurl":"messenger.<b>yahoo<\/b>.com\/?i=1",
"title":"<b>Yahoo<\/b>! Messenger - Chat, Instant message, SMS, Video Call, PC ...",
"abstract":"<b>Yahoo<\/b>! Messenger - Chat with friends for free and enjoy stealth settings, video calls, PC calls, file sharing, photo sharing, SMS, emoticons, & more."
},
{
"date":"",
"clickurl":"http:\/\/uk.my.yahoo.com\/",
"url":"http:\/\/uk.my.yahoo.com\/",
"dispurl":"uk.my.<b>yahoo<\/b>.com",
"title":"My <b>Yahoo<\/b>! - <b>Yahoo<\/b>! UK",
"abstract":"My <b>Yahoo<\/b>! is a customisable web page from <b>Yahoo<\/b>! UK. Personalise your page by adding news, stock quotes, weather, email, social updates and much more."
},
{
"date":"",
"clickurl":"http:\/\/search.yahoo.com\/",
"url":"http:\/\/search.yahoo.com\/",
"dispurl":"search.<b>yahoo<\/b>.com",
"title":"<b>Yahoo<\/b>! Search - Web Search",
"abstract":"Learn about the new <b>Yahoo<\/b>! Axis. A better way to search. Way better. Get it Now! >>"
},
{
"date":"",
"clickurl":"http:\/\/news.yahoo.com\/",
"url":"http:\/\/news.yahoo.com\/",
"dispurl":"news.<b>yahoo<\/b>.com",
"title":"<b>Yahoo<\/b>! News - Latest News & Headlines",
"abstract":"The latest news and headlines from <b>Yahoo<\/b>! News. Get breaking news stories and in-depth coverage with videos and photos."
},
{
"date":"",
"clickurl":"http:\/\/au.yahoo.com\/",
"url":"http:\/\/au.yahoo.com\/",
"dispurl":"au.<b>yahoo<\/b>.com",
"title":"<b>Yahoo<\/b>!7",
"abstract":"The <b>Yahoo<\/b>! for Australia offering local & global search, free email, instant messaging, news, sport, travel, shopping, movies & music."
},
{
"date":"",
"clickurl":"http:\/\/ca.yahoo.com\/",
"url":"http:\/\/ca.yahoo.com\/",
"dispurl":"ca.<b>yahoo<\/b>.com",
"title":"<b>Yahoo<\/b>! Canada",
"abstract":"Welcome to <b>Yahoo<\/b>! Canada, the world's most visited home page. Quickly find what you're searching for, get in touch with friends and stay in-the-know with the latest ..."
},
{
"date":"",
"clickurl":"http:\/\/everything.yahoo.com\/",
"url":"http:\/\/everything.yahoo.com\/",
"dispurl":"everything.<b>yahoo<\/b>.com",
"title":"<b>Yahoo<\/b>!",
"abstract":"<b>Yahoo<\/b>! International ... © 2012 <b>Yahoo<\/b>! Inc. All rights reserved"
},
{
"date":"",
"clickurl":"http:\/\/football.fantasysports.yahoo.com\/?ovchn=YAH&ovcpn=Front+Page&ovcrn=Front+page+P+Link+Nav+button&ovrfd=YAH&ovtac=AD",
"url":"http:\/\/football.fantasysports.yahoo.com\/?ovchn=YAH&ovcpn=Front+Page&ovcrn=Front+page+P+Link+Nav+button&ovrfd=YAH&ovtac=AD",
"dispurl":"football.fantasysports.<b>yahoo<\/b>.com\/?ovchn=YAH&ovcpn=Front...",
"title":"It's Game Time! - <b>Yahoo<\/b>! Sports Fantasy Football",
"abstract":"<b>Yahoo<\/b>! Fantasy Football. Create or join a NFL league and manage your team with FREE live scoring, stats, scouting reports, news, and expert advice."
},
{
"date":"",
"clickurl":"http:\/\/music.yahoo.com\/",
"url":"http:\/\/music.yahoo.com\/",
"dispurl":"music.<b>yahoo<\/b>.com",
"title":"<b>Yahoo<\/b>! Music - Exclusive New Music and Music Videos",
"abstract":"Find all the new music and exclusive video performances on <b>Yahoo<\/b>! Music. Get the latest news in our exclusive music blogs, listen to our online music radio and catch ..."
},
{
"date":"",
"clickurl":"http:\/\/uk.messenger.yahoo.com\/",
"url":"http:\/\/uk.messenger.yahoo.com\/",
"dispurl":"uk.messenger.<b>yahoo<\/b>.com",
"title":"<b>Yahoo<\/b>! Messenger - Chat, Instant message, Video Call, PC Calls",
"abstract":"<b>Yahoo<\/b>! Messenger - Chat with friends for free and enjoy stealth settings, video calls, PC calls, file sharing, photo sharing, emoticons, & more."
},
{
"date":"",
"clickurl":"http:\/\/in.yahoo.com\/",
"url":"http:\/\/in.yahoo.com\/",
"dispurl":"in.<b>yahoo<\/b>.com",
"title":"<b>Yahoo<\/b>! India",
"abstract":"Welcome to <b>Yahoo<\/b>!, the world's most visited home page. Quickly find what you're searching for, get in touch with friends and stay in-the-know with the latest news and ..."
},
{
"date":"",
"clickurl":"http:\/\/companion.yahoo.com\/",
"url":"http:\/\/companion.yahoo.com\/",
"dispurl":"companion.<b>yahoo<\/b>.com",
"title":"<b>Yahoo<\/b>! Toolbar - Stay in touch with your world.",
"abstract":"Toolbar for <b>Yahoo<\/b>! search, alerts for <b>Yahoo<\/b>! Mail and an option to save bookmarks online."
},
{
"date":"",
"clickurl":"http:\/\/movies.yahoo.com\/photos\/",
"url":"http:\/\/movies.yahoo.com\/photos\/",
"dispurl":"movies.<b>yahoo<\/b>.com\/photos",
"title":"Movie Pictures | Movie Posters - <b>Yahoo<\/b>! Movies",
"abstract":"View movie pictures and stills from the latest releases on <b>Yahoo<\/b>! Movies. Find movie posters, red carpet photos and pictures from upcoming movies."
},
{
"date":"",
"clickurl":"http:\/\/local.yahoo.com\/",
"url":"http:\/\/local.yahoo.com\/",
"dispurl":"local.<b>yahoo<\/b>.com",
"title":"Redmond City Pages on <b>Yahoo<\/b>! Local. Find Businesses, Services ...",
"abstract":"<b>Yahoo<\/b>! Local has Redmond business reviews, top rated services, and events near Redmond, WA. Use interactive maps, driving directions reviews and ratings to find the ..."
},
{
"date":"",
"clickurl":"http:\/\/yahooligans.yahoo.com\/",
"url":"http:\/\/yahooligans.yahoo.com\/",
"dispurl":"<b>yahoo<\/b>ligans.<b>yahoo<\/b>.com",
"title":"Kids Games, Kids Movies, Kids Music, and More - <b>Yahoo<\/b>! Kids",
"abstract":"<b>Yahoo<\/b> Kids! is the ultimate web guide for kids! Features fun and educational resources for kids with games, animals, music, jokes, movies, news, astrology, TV ..."
},
{
"date":"",
"clickurl":"http:\/\/m.yahoo.com\/",
"url":"http:\/\/m.yahoo.com\/",
"dispurl":"m.<b>yahoo<\/b>.com",
"title":"<b>Yahoo<\/b>! Mobile",
"abstract":"Welcome to <b>Yahoo<\/b>! Mobile. Stay up to date on the go with business, sports, and entertainment news."
},
{
"date":"",
"clickurl":"http:\/\/tv.yahoo.com\/",
"url":"http:\/\/tv.yahoo.com\/",
"dispurl":"tv.<b>yahoo<\/b>.com",
"title":"<b>Yahoo<\/b>! TV",
"abstract":"<b>Yahoo<\/b>! TV is your guide to everything about TV online, from TV show listings and episode guides, to the latest TV show photos, clips, news, recaps, cast & credits ..."
},
{
"date":"",
"clickurl":"http:\/\/shopping.yahoo.com\/",
"url":"http:\/\/shopping.yahoo.com\/",
"dispurl":"shopping.<b>yahoo<\/b>.com",
"title":"<b>Yahoo<\/b>! Shopping - Online Shopping with great products, prices ...",
"abstract":"<b>Yahoo<\/b>! Shopping is the best place to read user reviews, explore great products and buy online."
},
{
"date":"",
"clickurl":"http:\/\/dir.yahoo.com\/",
"url":"http:\/\/dir.yahoo.com\/",
"dispurl":"dir.<b>yahoo<\/b>.com",
"title":"<b>Yahoo<\/b>! Directory",
"abstract":"Help us improve the <b>Yahoo<\/b>! Directory - Share your ideas"
},
{
"date":"",
"clickurl":"http:\/\/overview.mail.yahoo.com\/",
"url":"http:\/\/overview.mail.yahoo.com\/",
"dispurl":"overview.mail.<b>yahoo<\/b>.com",
"title":"<b>Yahoo<\/b>! Mail",
"abstract":"Your favorite email is now: FASTER: 2x faster. How great is that? So great. SAFER: Even better spam protection. Yes! EASIER: Clean, simple design that makes email a ..."
},
{
"date":"",
"clickurl":"http:\/\/travel.yahoo.com\/",
"url":"http:\/\/travel.yahoo.com\/",
"dispurl":"travel.<b>yahoo<\/b>.com",
"title":"<b>Yahoo<\/b>! Travel - Cheap flights, hotels, travel guides & car rental",
"abstract":"Find cheap flights, hotels and car rentals with <b>Yahoo<\/b>! Travel. Plan your trip with travel guides, personalized recommendations, articles, deals and more."
},
{
"date":"",
"clickurl":"http:\/\/omg.yahoo.com\/news\/",
"url":"http:\/\/omg.yahoo.com\/news\/",
"dispurl":"omg.<b>yahoo<\/b>.com\/news",
"title":"Celebrity News | Celebrity Gossip - <b>Yahoo<\/b>! omg!",
"abstract":"Get the latest celebrity news from <b>Yahoo<\/b>! omg! Find the latest news about the Hollywood celebrities with videos and photos"
},
{
"date":"",
"clickurl":"http:\/\/games.yahoo.com\/",
"url":"http:\/\/games.yahoo.com\/",
"dispurl":"games.<b>yahoo<\/b>.com",
"title":"<b>Yahoo<\/b>! Games - Play Free Online Games | Download Games",
"abstract":"Play the latest online games on <b>Yahoo<\/b>! Games. Play and download single and multiplayer games from a wide selection of arcade, board and puzzle games."
},
{
"date":"",
"clickurl":"http:\/\/omg.yahoo.com\/photos\/",
"url":"http:\/\/omg.yahoo.com\/photos\/",
"dispurl":"omg.<b>yahoo<\/b>.com\/photos",
"title":"Celebrity Photos | Pictures of Celebrities - <b>Yahoo<\/b>! omg!",
"abstract":"View the latest celebrity photos on <b>Yahoo<\/b>! omg! Get the latest red carpet pictures and photos from Hollywood."
},
{
"date":"",
"clickurl":"http:\/\/finance.yahoo.com\/q?s=",
"url":"http:\/\/finance.yahoo.com\/q?s=",
"dispurl":"finance.<b>yahoo<\/b>.com\/q?s=",
"title":"Quotes & Info- <b>Yahoo<\/b>! Finance",
"abstract":"View the basic stock chart on <b>Yahoo<\/b>! Finance. Change the date range, chart type and compare against other companies."
},
{
"date":"",
"clickurl":"http:\/\/movies.yahoo.com\/",
"url":"http:\/\/movies.yahoo.com\/",
"dispurl":"movies.<b>yahoo<\/b>.com",
"title":"<b>Yahoo<\/b>! Movies - Upcoming Movies, Trailers and Showtimes",
"abstract":"View the latest trailers and movie reviews on <b>Yahoo<\/b>! Movies. Find everything about movies online, from upcoming releases, movie ratings, trailers and movie news"
},
{
"date":"",
"clickurl":"http:\/\/screen.yahoo.com\/",
"url":"http:\/\/screen.yahoo.com\/",
"dispurl":"screen.<b>yahoo<\/b>.com",
"title":"Watch videos online - <b>Yahoo<\/b>! Screen",
"abstract":"Watch videos online for free on <b>Yahoo<\/b>! Screen. Find sports, kids and funny videos including the latest news video clips."
},
{
"date":"",
"clickurl":"http:\/\/privacy.yahoo.com\/",
"url":"http:\/\/privacy.yahoo.com\/",
"dispurl":"privacy.<b>yahoo<\/b>.com",
"title":"<b>Yahoo<\/b>! Privacy Policy",
"abstract":"WHAT THIS PRIVACY POLICY COVERS <b>Yahoo<\/b>! takes your privacy seriously. Please read the following to learn more about our privacy policy. The federal ..."
},
{
"date":"",
"clickurl":"http:\/\/news.yahoo.com\/us\/",
"url":"http:\/\/news.yahoo.com\/us\/",
"dispurl":"news.<b>yahoo<\/b>.com\/us",
"title":"U.S. News Headlines - <b>Yahoo<\/b>! News",
"abstract":"Get the latest U.S. news headlines from <b>Yahoo<\/b>! News. Find breaking U.S. news, including analysis and opinion on top U.S. stories."
},
{
"date":"",
"clickurl":"http:\/\/fantasysports.yahoo.com\/",
"url":"http:\/\/fantasysports.yahoo.com\/",
"dispurl":"fantasysports.<b>yahoo<\/b>.com",
"title":"Fantasy on <b>Yahoo<\/b>! Sports - News, Scores, Standings, Rumors ...",
"abstract":"Comprehensive Fantasy news, scores, standings, fantasy games, rumors, and more"
},
{
"date":"",
"clickurl":"http:\/\/finance.yahoo.com\/",
"url":"http:\/\/finance.yahoo.com\/",
"dispurl":"finance.<b>yahoo<\/b>.com",
"title":"<b>Yahoo<\/b>! Finance - Business Finance, Stock Market, Quotes, News",
"abstract":"At <b>Yahoo<\/b>! Finance, you get free stock quotes, up to date news, portfolio management resources, international market data, message boards, and mortgage ..."
},
{
"date":"",
"clickurl":"http:\/\/world.yahoo.com\/",
"url":"http:\/\/world.yahoo.com\/",
"dispurl":"world.<b>yahoo<\/b>.com",
"title":"<b>Yahoo<\/b>!: <b>Yahoo<\/b>! Everywhere",
"abstract":"<b>Yahoo<\/b>! USA (en Español) ... © 2012 <b>Yahoo<\/b>! Inc. All rights reserved"
}
]
}
}
}
我使用了以下几行:
JsonParser jsonParser = new JsonParser();
JsonObject linksObj = jsonParser.parse(jsonReader).getAsJsonObject();
JsonArray linksArray = jsonParser.parse(linksObj.get("results").toString()).getAsJsonArray();
但是我收到了一个错误:
Exception in thread "main" java.lang.NullPointerException
at parseResponse.main(parseResponse.java:35)
当我尝试删除"results"
之前的文本时,我的代码可以成功解析JSON响应。任何机构都可以解释我该如何处理这个问题。该程序应该能够提取数组元素,而不是像我调试那样手动删除行。
答案 0 :(得分:1)
尝试使用此代码来解析您的JSON响应。你可以在resultArray中获取数组,
try{
JSONObject obj = new JSONObject(JSONresponse);
JSONObject bossObj = obj.getJSONObject("bossresponse");
JSONObject webObj = obj.getJSONObject("web");
JSONArray resultArray obj = obj.getJSONArray("results");
for(i=0;i<=resultArray.length();i++){
JSONObject resultObject = resultArray.getJSONObject(i);
String date = resultObject.getString("date");
String clickurl = resultObject.getString("clickurl");
String url = resultObject.getString("url");
String dispurl= resultObject.getString("dispurl");
String title = resultObject.getString("title");
String abstract = resultObject.getString("abstract");
}
} catch (Exception ex) {
ex.printStackTrace();
}
答案 1 :(得分:0)
似乎你需要从web属性中读取结果,而不仅仅是包装器顶部对象,
所以:这是你的linksObject
:
JsonObject linksObj = jsonParser.parse(jsonReader).getAsJsonObject();
它应该有bossresponse
attribut,它是另一个对象。
从bossresponse
对象,您将拥有web
个对象
来自web
,您将拥有results
对象
bossresponse->web->results
现在你是第一级的阅读results
。我想如果json是
{
results:[
{
//here attrs
}
]
}