首页 / JSON / 在Java中解析JSON对象数组
在Java中解析JSON对象数组
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在Java中解析JSON对象数组,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2374字,纯文字阅读大概需要4分钟。
内容图文
我正在尝试解析以下JSON:
{"city":{"id":2643743,"name":"London","coord":{"lon":-0.12574,"lat":51.50853},"country":"GB","population":0},"cod":"200","message":0.0456,"cnt":7,"list":[
{"dt":1440504000,"temp":
{"day":16.85,"min":14.23,"max":16.85,"night":14.23,"eve":16.32,"morn":16.85},
"pressure":1013.06,"humidity":79,"weather":[
{"id":500,"main":"Rain","description":"light rain","icon":"10d"}],
"speed":7.36,"deg":172,"clouds":88,"rain":1.09},
{"dt":1440504001,"temp":
{"day":16.85,"min":10.03,"max":18.15,"night":14.23,"eve":16.32,"morn":16.85},
"pressure":1013.06,"humidity":45,"weather":[
{"id":501,"main":"Rain","description":"light rain","icon":"10d"}],
"speed":15.46,"deg":172,"clouds":88,"rain":1.09},
{"dt":1440504002,"temp":
{"day":16.85,"min":4.73,"max":11.12,"night":14.23,"eve":16.32,"morn":16.85},
"pressure":1013.06,"humidity":59,"weather":[
{"id":502,"main":"Rain","description":"light rain","icon":"10d"}],
"speed":17.12,"deg":172,"clouds":88,"rain":1.09}]}
我要解析的信息是:“min”,“max”,“humidity”和“speed”.由于这是我第一次解析数组,我不知道如何解析它.在阅读了一些论坛帖子后,我写了下面的代码:
public void filtraOW7days(String contenidoOW) throws ParseException{
JSONParser parser = new JSONParser();
try{
Object obj = parser.parse(contenidoOW);
JSONObject jsonList = (JSONObject) obj;
JSONArray list = (JSONArray) jsonList.get("list");
Iterator<String> unitsIterator = list.iterator();
int i = 0;
while(unitsIterator.hasNext()){
Object uJson = unitsIterator.next();
JSONObject uj = (JSONObject) uJson;
this.humOWaux[i] = (long) uj.get("humidity");
this.windOWaux[i] = (String) uj.get("speed");
JSONArray slideContent = (JSONArray) uj.get("temp");
Iterator c = slideContent.iterator();
while (c.hasNext()) {
JSONObject slide = (JSONObject) c.next();
this.tmaxOWaux[i] =(String) slide.get("max");
this.tminOWaux[i] = (String) slide.get("min");
}
i++;
}
} catch (ParseException e) {
e.printStackTrace();
}
}
字符串contenidoOW是JSON.This代码给我以下错误:
java.lang.NullPointerException at “this.humOWaux[i] = (long)
uj.get(“humidity”);”.
我不明白为什么(至少我不明白为什么),你能帮助我吗?
编辑:我正在使用org.json.simple并且变量的声明是:
private String [] tminOWaux;
private String [] tmaxOWaux;
私人长[] humowaux;
private String [] windOWaux;
谢谢你的时间,真是太棒了!
解决方法:
Long humidity=null; // long humidity=0;
if(uj.get("humidity")!=null){
humidity=Long.valueOf(uj.get("humidity"))
}
内容总结
以上是互联网集市为您收集整理的在Java中解析JSON对象数组全部内容,希望文章能够帮你解决在Java中解析JSON对象数组所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。