我充滿了嘰嘰喳喳的鳴叫一個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