【问题标题】:unable to set value for json arraylist :object cannot be resolved or is not a field无法为 json arraylist 设置值:对象无法解析或不是字段
【发布时间】:2020-06-01 18:03:58
【问题描述】:

我无法为 JSON ArrayList 对象设置值。我收到错误,例如无法解析对象。

这是我写的代码。

public class TestDataBuild {

    public static List<Addbook> addbook()
    {
    ReadJsonFile readJson=new ReadJsonFile();
    List<Addbook> addbook = readJson.getjsondata("src/test/resource/testdataresource/addplacerequest.json", Addbook.class);
    //System.out.println(addbook.getClass().getName()); 
    addbook.setName(addbook.name);
    addbook.setAuthor(addbook.author);
    addbook.setIsbn(addbook.isbn);
    addbook.setAisle(addbook.aisle);
    return addbook;
        }

    }

我用过的POJO类是:

public class Addbook {

    public String name;
    public int  isbn;
    public String aisle;
    public String author;


    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getIsbn() {
        return isbn;
    }
    public void setIsbn(int isbn) {
        this.isbn = isbn;
    }
    public String getAisle() {
        return aisle;
    }
    public void setAisle(String aisle) {
        this.aisle = aisle;
    }
    public String getAuthor() {
        return author;
    }
    public void setAuthor(String author) {
        this.author = author;
    }

    @Override
    public String toString() {
        return "Addbook [name="+ name + ",isbn="+ isbn +",aisle="+ aisle +",authur="+ author +"]";
    }
}

我拥有的 JSON 文件是:

[
{"name": "The GoodDay", "isbn": 67086, "aisle": "GoodDay","author": "ggdf"},
{"name": "The BadDay", "isbn": 56897, "aisle": "BadDay", "author": "fdffd"}
]

我应该如何解决这个错误?

【问题讨论】:

  • 我建议您使用 Gson 库将对象转换为 json,反之亦然。您只需搜索“Gson 示例”即可找到大量示例

标签: java json arraylist


【解决方案1】:

您可以使用 Google Gson 。试试这个:

public static List<Addbook> getBookList() {
        List<Addbook> bookList = null;
        try {
            String path = "Your path here"; // I used "D:\\test.json"
            BufferedReader bufferedReader = new BufferedReader(new FileReader(path));
            Gson gson = new Gson();
            bookList =  gson.fromJson(bufferedReader, List.class);
        } catch (Exception e) {
            e.printStackTrace();
        }

        return bookList;
    }
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.6</version>
        </dependency>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-09
    • 1970-01-01
    • 2014-03-27
    • 2014-01-05
    • 2016-05-20
    • 2016-02-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多