【问题标题】:How parse a list of json object from a file in Java?如何从 Java 文件中解析 json 对象列表?
【发布时间】:2020-02-27 23:34:59
【问题描述】:

我需要解析存储在一个巨大的 json 文档中的维基百科文章列表。

json文件中的文章结构为:

{"id": "", "revid": "", "url":"", "title": "", "text": "..."} 

我没有对象的名称,因此我在 java 中解析它时遇到了一些问题。

一些建议?

【问题讨论】:

  • 使用 JSON 库;在 Google 上搜索一个。

标签: java json parsing


【解决方案1】:

你可以随意命名类。在该课程中,您不必映射每个字段,但您可以。重要的是具有与 JSON 文件中相同的字段名称和类型

例如

public class Article {
    private String id;
    private String url;
    private String title;
    private String text;

    //getters & setters
}

【讨论】:

    【解决方案2】:

    这里有一个适合你的方法:

    package com.json;    
    
    import java.io.IOException;    
    
    import com.fasterxml.jackson.databind.ObjectMapper;    
    
    
    public class JsonToObject {    
    
        public static void main(String[] args){    
    
            ObjectMapper mapper = new ObjectMapper();
            String json = "{\"id\": \"AF98037\", \"action\": \"UPDATE\", \"activated_at\": \"2020-01-24T03:37:44.951Z\", \"address_contact\": \" \", \"age\": 0}";    
    
            try {
                ParsedJson gi = mapper.readValue(json, ParsedJson.class);    
    
                System.out.println(gi.getAction());
                System.out.println(gi.getId());
                System.out.println(gi.getAge());
            } catch (IOException e) {
                e.printStackTrace();
            }    
    
        }
    
    }
    

    ParsedJson.class

    package com.json;    
    
    public class ParsedJson {    
    
        private String action;
        private String id;
        private String alt;
        private Integer age;
        private String address_contact;
        private String activated_at;    
    
        public String getAction() {
            return action;
        }    
    
        public void setAction(String action) {
            this.action = action;
        }    
    
        public String getId() {
            return id;
        }    
    
        public void setId(String id) {
            this.id = id;
        }    
    
        public String getAlt() {
            return alt;
        }    
    
        public void setAlt(String alt) {
            this.alt = alt;
        }    
    
        public Integer getAge() {
            return age;
        }    
    
        public void setAge(Integer age) {
            this.age = age;
        }    
    
        public String getAddress_contact() {
            return address_contact;
        }    
    
        public void setAddress_contact(String address_contact) {
            this.address_contact = address_contact;
        }    
    
        public String getActivated_at() {
            return activated_at;
        }    
    
        public void setActivated_at(String activated_at) {
            this.activated_at = activated_at;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-16
      • 1970-01-01
      相关资源
      最近更新 更多