我想使用Jackson JSON parser解析 JSON 字符串。我要解析的 JSON 代码包含一个数组,其中有一个对象。从这个对象中,我想提取text
andretweet_count
属性:
[
{
"created_at": "Tue Jan 08 08:19:58 +0000 2013",
"id": 288560667345178600,
"text": "test tweet",
"source": "web",
"truncated": false,
"user": {
"id": 941802900,
"id_str": "941802900",
"location": ""
},
"contributors": null,
"retweet_count": 0,
"favorited": false,
"retweeted": false
}
]
我尝试使用以下代码来做到这一点:
JsonFactory f = new JsonFactory();
JsonParser jp = f.createJsonParser(str);
boolean first = true;
while (jp.nextValue() != JsonToken.END_ARRAY) {
Tweet tweet = new Tweet();
while (jp.nextToken() != JsonToken.END_OBJECT) {
String fieldName = jp.getCurrentName();
jp.nextToken();
if (fieldName.equals("text")) {
tweet.setText(jp.getText());
} else if (fieldName.equals("retweet_count")) {
tweet.setRetweetCount(jp.getValueAsLong());
}
}
}
但是,我没有得到预期的结果。我认为问题在于在“推文”对象内部,我有另一个“用户”对象,当解析器遇到}
用户对象时,它认为它是}
整个推文对象的。你能告诉我如何解决这种情况吗?