我正在尝试解析 JSON:
{
"shopId": 45123,
"name":"London",
"desc":"# The city\n## Intro\n**London** is the capital and most populous city of England and the United Kingdom, as well as the most populous municipality in the European Union. Standing on the _River Thames_ in the south east of the island of Great Britain \n## History \n London has been a major settlement for two millennia. It was founded by the Romans, who named it [Londinium](https://en.wikipedia.org/wiki/Londinium). London's ancient core, the City of London, largely retains its 1.12-square-mile (2.9 km2) medieval boundaries.",
"priceRating": 4.2,
"qualityRating":5.0,
"thumbnail":"https://s-media-cache-ak0.pinimg.com/736x/90/63/4e/90634e974743ed9409f527e3b2f24852.jpg",
"stops":
[
{
"num": 1,
"time": "2016-04-27T06:15:00.000Z",
"title":"Flight to London",
"desc":"Barcelona BCN-London-Gatwick LGW",
"type":"0",
"subtype":0
},
{
"num": 2,
"time": "2016-04-27T10:35:00.000Z",
"title":"Gatwick express",
"desc":"From Airport to London",
"type":"0",
"subtype":1
},
{
"num": 3,
"time": "2016-04-27T12:15:00.000Z",
"title":"Pub the black horse",
"desc":"From Airport to London",
"type":1,
"subtype":1,
"location": "51.476334, -0.062700",
"images": [ "https://fitzrovianews.files.wordpress.com/2011/01/black_horse_rathbone_pl.jpg"
]
},
{
"num": 4,
"time": "2016-04-27T12:16:47.000Z",
"title":"The Tower Bridge",
"desc":"# The Tower Bridge Facts\n## Architecture\n**Tower Bridge** is a combined bascule and suspension bridge in London built in _1886–1894_. The bridge crosses the River Thames close to the Tower of London and has become an iconic symbol of London. Tower Bridge is one of five London bridges now owned and maintained by the Bridge House Estates, a charitable trust overseen by the City of London Corporation. \n>It is the only one of the Trust's bridges not to connect the City of London directly to the Southwark bank, as its northern landfall is in Tower Hamlets.\n## The bridge Exhibition\nThis must-see London attraction invites you to step inside the most famous bridge in the world to explore its iconic structure, spectacular views and glass floor, modern exhibitions and magnificent Victorian Engine Rooms! ",
"type":1,
"subtype":6,
"location": "51.507792, -0.087786",
"images": [
"https://i.ytimg.com/vi/nby0Mr2LfBQ/hqdefault.jpg",
"http://raindropsofsapphire.com/wp-content/uploads/2011/10/london-bridge.jpg",
"http://www.londonforfree.net/gizmo/wp-content/uploads/2015/02/southwark-bridge.jpg"
]
},
{
"num": 5,
"time": "2016-04-27T12:18:10.000Z",
"title":"St. Paul Cathedral",
"desc":"# HISTORY \nSt **Paul's Cathedral**, London, is an _Anglican cathedral_, the seat of the _Bishop of London_ and the mother church of the Diocese of London. \n * It sits on Ludgate Hill at the highest point of the City of London and is a Grade 1 listed building. \n * Its dedication to Paul the Apostle dates back to the original church on this site, founded in AD 604.",
"type":1,
"subtype":6,
"location": "51.513825, -0.098351",
"images": [
"https://d1wgio6yfhqlw1.cloudfront.net/sysimages/product/resized6/Interior_St_Pauls_Cathedral_132_12992.jpg",
"https://d1kioxk2jrdjp.cloudfront.net/resized/486x324/48-st_pauls_ctahedral_millenirm_bridge.jpg",
"http://i4.mirror.co.uk/incoming/article8299330.ece/ALTERNATES/s615b/LOND-2016-052-HMQ-St-Pauls-Thanks-Giving-704JPG.jpg"
]
}
]
}
当我尝试使用下一个代码解析“图像”元素时,问题就出现了:
for (int i = 0; i < stops.length(); i++) {
JSONObject c = stops.getJSONObject(i);
.....
if(c.has("images") && !c.isNull("images")){
JSONArray imagenes = jsonObj.getJSONArray("images");
for (int j = 0; j < imagenes.length(); j++) {
String valueString= imagenes.getString(i);
Log.d("myTag", "Viatge Parser con valuestring" + valueString);
URL url2 = new URL(valueString);
HttpURLConnection connection = (HttpURLConnection) url2.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream input = connection.getInputStream();
Bitmap miBitmap = BitmapFactory.decodeStream(input);
s.addImage(miBitmap);
}
}
我已经在检查是否"images"
存在,但我不断收到此错误:
03-22 00:23:51.391 23180-23797/com.example.usuari.myapplication3 I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
03-22 00:23:51.391 23180-23797/com.example.usuari.myapplication3 I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
03-22 00:23:51.801 23180-23797/com.example.usuari.myapplication3 W/System.err: org.json.JSONException: No value for images
03-22 00:23:51.801 23180-23797/com.example.usuari.myapplication3 W/System.err: at org.json.JSONObject.get(JSONObject.java:389)
03-22 00:23:51.801 23180-23797/com.example.usuari.myapplication3 W/System.err: at org.json.JSONObject.getJSONArray(JSONObject.java:584)
03-22 00:23:51.801 23180-23797/com.example.usuari.myapplication3 W/System.err: at com.example.usuari.myapplication3.ViatgeParser.parseFromJSON(ViatgeParser.java:97)
03-22 00:23:51.801 23180-23797/com.example.usuari.myapplication3 W/System.err: at com.example.usuari.myapplication3.DownloadAsyncTask.doInBackground(DownloadAsyncTask.java:38)
03-22 00:23:51.801 23180-23797/com.example.usuari.myapplication3 W/System.err: at com.example.usuari.myapplication3.DownloadAsyncTask.doInBackground(DownloadAsyncTask.java:17)
03-22 00:23:51.801 23180-23797/com.example.usuari.myapplication3 W/System.err: at android.os.AsyncTask$2.call(AsyncTask.java:295)
03-22 00:23:51.801 23180-23797/com.example.usuari.myapplication3 W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
03-22 00:23:51.801 23180-23797/com.example.usuari.myapplication3 W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
03-22 00:23:51.801 23180-23797/com.example.usuari.myapplication3 W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
03-22 00:23:51.801 23180-23797/com.example.usuari.myapplication3 W/System.err: at java.lang.Thread.run(Thread.java:818)
如果我已经在if
语句中进行了适当的检查,我不明白我怎么会收到这个错误!
改成JSONArray imagenes = jsonObj.getJSONArray("images");
这个JSONArray imagenes = c.getJSONArray("images");
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句