Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Jackson实现解析器_Java_Json_Twitter - Fatal编程技术网

Java 使用Jackson实现解析器

Java 使用Jackson实现解析器,java,json,twitter,Java,Json,Twitter,到目前为止,我有一个tweet.json文件,里面是tweet的集合。我构建了一个tweet.class,它是tweet中键值的对象集合 现在我想使用jackson实现一个解析,它应该在tweet.json中逐行运行,并且每个tweet(line)都被解析为POJO。所以每一行都是一个POJO 我该怎么做 这就是我所做的 ObjectMapper mapper = new ObjectMapper(); ParsedTweets tweets = mapper.readValue(new Fil

到目前为止,我有一个tweet.json文件,里面是tweet的集合。我构建了一个tweet.class,它是tweet中键值的对象集合

现在我想使用jackson实现一个解析,它应该在tweet.json中逐行运行,并且每个tweet(line)都被解析为POJO。所以每一行都是一个POJO

我该怎么做

这就是我所做的

ObjectMapper mapper = new ObjectMapper();
ParsedTweets tweets = mapper.readValue(new File("tweet.json"), tweet.class);
json文件示例

 {"text": "MVA/Transport. Greater Hume (Hume Hwy, Holbrook, NSW 2644) at 7 Mar 2017 03:58 #NSWRFS #MVATransport", "user": {"id": "4721717942", "name": "NSW Fire Updates"}, "lang": "en", "coordinates": { "coordinates": [147.273696, -35.785469] , "type":"Point"}, "created_at": "Mon Mar 06 17:29:31 +0000 2017"}
{"text": "Yes! Everything happens for a reason. The rain doesn't want the Swedru people to go& flood Westhills mall this eveningAssuming the file contains tweets in the below format:

[{
    "id": "1",
    "text" : "abc"
}, {
    "id": "2",
    "text" : "def"
}]
{“text”:“MVA/Transport.Greater Hume(休谟Hwy,Holbrook,NSW 2644)于2017年3月7日03:58{NSWRFS#MVATransport”,“user”:{“id”:“4721717942”,“name”:“NSW Fire Update”},“lang”:“en”,“坐标”:{“坐标”:[147.273696,-35.785469],“type”:“Point”},于2017年3月6日星期一17:29:31+0000创建”}

{“text”:“是的!一切都是有原因的。雨不希望斯维德鲁人今晚去西山购物中心,假设文件中包含以下格式的推文:

class tweet {
    private String id;
    private String text;
    //getters and setters
    public String toString(){
        return this.id + "," + this.name + "," + this.text + "," + this.coordinates + "," + this.created_at;
}
tweet
类具有以下字段:

ObjectMapper mapper = new ObjectMapper();
List<tweet> tweets = mapper.readValue(new File("tweet.json"), new TypeReference<List<tweet>>(){});
您可以使用Jackson的
TypeReference
对列表进行反序列化,例如:

public class Test {
    public static void main(String[] args) throws Exception {
        List<Tweet> tweets = new ArrayList<>();
        ObjectMapper mapper = new ObjectMapper();
        try(BufferedReader reader = new BufferedReader(new FileReader("tweet.json"))){
            String line;
            while((line = reader.readLine()) != null){
                tweets.add(mapper.readValue(line, Tweet.class));
            }
        }
    }
}

你能添加一个
json
的例子以及
Tweet
classSure的结构吗?我刚刚添加了一个例子,对不起,我以为它已经发布了,但我的互联网已经完成了。你能再检查一下吗?我刚刚发布了是的,这就是我打算做的。逐行阅读json文件…感谢你的洞察力。但是它在那里不起作用错误消息“Error:(28,6)java:解析时到达文件末尾”。您能检查更新的版本i postedError或exception吗?您能发布stacktrace吗?我想这是一个错误。解析时出错。错误显示“Error:(28,6)java:解析时到达文件末尾”,这是代码的最后一行。in“}“如何使用stacktrace?