![](/img/trans.png)
[英]How to extract a specific part from JSON response with changing fields names in JSON structure (as in this example) with Java in Spring Boot?
[英]Extract specific fields from a json data
我想从此json数据中提取字段“总计”中的字段“ 2008”和“ 2009”。 我试过了,但它显示了空指针异常..我不知道出了什么问题。 以下是我尝试过的代码。
/*insertion of data*/
DB preDB = mongo.getDB("database");
DBCollection coll = preDB.getCollection("agrinindstry");
BasicDBObject doc1 = new BasicDBObject();
doc1.put("test", str);
coll.insert(doc1);
System.out.println(doc1);
/***retrieving data***/
DBCursor cursor = coll.find();
JSONArray mylist = new JSONArray();
String result = "";
while (cursor.hasNext())
{
result = cursor.next().get("2008").toString();
mylist.add(result);
System.out.println(mylist);
}
这是我的json数据
{"maindata":[
{
"title":"industry",
"2008":37,
"2009":44,
"2010":42
},
{
"title":"agriculture",
"2008":4,
"2009":0,
"2010":6
}
],
"total":{
"title:"sum",
"2008":41,
"2009":44,
"2010":48
}
}
((DBObject)cursor.next().get("total")).get("2008").toString();
您可以通过将任何JAVA tootkit用于JSON来简化您的任务,请看以下示例 :
要进一步了解JSON及其解析方法,请检查以下内容:
如果您阅读JSONObject#get(String)的javadoc(实际上是HashMap.get(String)),则会指出
返回:指定键映射到的值;如果此映射不包含该键的映射,则返回null
您的JSON不包含关键时间的映射。
编辑:
考虑一下这个来解析您的JSON数据:
{"schedule":{"service":{"type":"radio","key":"radio1","title":"BBC Radio 1",...
您需要首先将日程表作为JSONObject获取,然后将服务作为JSONObject获取,然后将title作为常规String值获取。 根据JSON值的类型,不同地应用它。
尝试这个:
//get the data from mongoDB which documents has "total" key.
DBObject dbObject = new BasicDBObject().append("total", new BasicDBObject("$exists", true));
DBCursor cursor = collection.find(dbObject);
JSONArray mylist = new JSONArray();
String result = "";
while (cursor.hasNext())
{
result = ((DBObject)cursor.next().get("total")).get("2008").toString();
mylist.add(result);
System.out.println(mylist);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.