[英]parsing json & mapping xml with java com.fasterxml.jackson.databind.JsonNode;
[英]parse json object from json array in java using com.fasterxml.jackson.databind.JsonNode;
我试图解析一些json,它是数组中的一组对象。 我不太熟练使用Java,并且很难弄清楚该怎么做。
ObjectMapper mapper = new ObjectMapper();
mapper.setSerializationInclusion(Include.NON_NULL);
JsonNode messageNode = mapper.readTree(post);
if (!messageNode.isArray()){
try {
throw new Exception("INVALID JSON");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
ArrayList<String> listObjects = null;
JsonParser parser = mapper.getFactory().createParser(post);
json格式:
{
"data": [
{
"id": "897569693587466_897626706915098",
"from": {
"id": "1809583315",
"name": "Lena Cann Jordan"
},
"message": "Amen.",
"can_remove": false,
"created_time": "2014-11-11T22:41:11+0000",
"like_count": 0,
"user_likes": false
},
{
"id": "897569693587466_897627376915031",
"from": {
"id": "1776031725",
"name": "Kyla Munford"
},
"message": "Tell me what my God can't do!!!",
"can_remove": false,
"created_time": "2014-11-11T22:42:51+0000",
"like_count": 0,
"user_likes": false
},
{
"id": "897569693587466_897631636914605",
"from": {
"id": "100000106496788",
"name": "Sarah Barklow Tyson"
},
"message": "That's bc God is awesome!! He can give or take away!! \ud83d\ude4f\u2795",
"can_remove": false,
"created_time": "2014-11-11T22:49:46+0000",
"like_count": 0,
"user_likes": false
}
],
"paging": {
"cursors": {
"after": "WTI5dGJXVnVkRjlqZFhKemIzSTZPRGszTmpVMk1USXdNalExTkRrd09qRTBNVFUzTkRrNU5qTTZOREE9",
"before": "WTI5dGJXVnVkRjlqZFhKemIzSTZPRGszTmpJMk56QTJPVEUxTURrNE9qRTBNVFUzTkRVMk56RTZNelU9"
},
"previous": "some link"
}
}
这是来自facebook graph api的json。 我还需要提取下面的光标和链接,以便它们也显示为对象之一。
赞赏的建议。
谢谢
我认为真正的问题是您要实现什么? 您已经将JSON解析为树模型( JsonNode
), JsonNode
起,您可以使用get
, path
和at
(使用JSON指针表达式)自由遍历内容。
或者,如上面的Samwise所建议的那样,可以考虑使用与JSON相同的结构来对Java类进行建模,这样您就可以更轻松地将数据作为常规Java对象进行访问。 如果是这样,您可以通过以下方式简单地对其进行解析:
Graph graph = mapper.readValue(post);
Data d = graph.getData().get(0); // for first entry in "data" List
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.