我充满了叽叽喳喳的鸣叫一个JSON文件,如下所示:解析JSON文件POJO使用杰克逊
{"text": "RT @7NewsSydney: Fire rips through party island Ibiza. #7News, "lang": "en", "coordinates": { "coordinates": [150.595679, -34.187708] , "type":"Point"}, "created_at": "Mon Mar 06 22:47:10 +0000 2017"}
{"text": "Fire rips through party island Ibiza. #7News ", "user": {"id": "156464691", "name": "7 News Sydney"}, "lang": "en","created_at": "Mon Mar 06 22:43:11 +0000 2017"}
我想将它们转换成POJO,我已经定义了微博类
import java.io.*;
import java.util.*;
import com.fasterxml.jackson.databind.*;
public class Tweets {
private int id;
private String username;
private String text;
private int coordinates;
private String timestamp;
}
ObjectMapper mapper = new ObjectMapper();
Tweets tweets = mapper.readValue(new File(tweets.json), Tweets.class);
我有这个麻烦 1.推文不一样,例如,第一条推文有一个坐标键值,第二条推文没有。
此解析技术是否正确?有人可以帮助
我敢肯定,如果文件不包含tweet对象一个无效的json数组,因此映射程序无法解析它 - 并且无法将_two_ tweet分析为_one_ pojo。你可能想要分割你的文件(例如按行)或重构它以包含顶层数组,然后将其解析为'Tweets []'。 – Thomas
你是什么意思由此“我敢肯定,如果该文件不包含数组中不是有效的json,因此映射器无法解析它的tweet对象”,是的,我想读它的行按行,那么我该怎么做? – Kutam
我的意思是'{...} {...}'不是有效的json,它应该是'[{..},{...}]'。但是,如果你想逐行阅读文件,应该没问题,因为你每行只有一个json对象。你应该寻找如何逐行阅读文件。我会给你一个提示:'BufferedReader'。 – Thomas