无法使用JAVA中的bean解析JSON数据

时间:2019-02-15 11:05:29

标签: java json eclipse

这是我解析JSON文件并打印的代码。

public class JsonpJsonParser implements IparseJson {

public static void main(String[] args) {
    IparseJson parser = new JsonpJsonParser();
    try (FileInputStream in = new FileInputStream("data.json")) {
        List<QueryResultBean1> results = parser.parseJson(in);
        for (QueryResultBean1 result : results) {
            System.out.println(result.getHeader().getRequest_id());
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}



@Override
public List<QueryResultBean1> parseJson(InputStream in) {
    JsonReader reader = Json.createReader(in);
    JsonObject json = reader.readObject();
    reader.close();

    // parse the json object, return something
    List<QueryResultBean1> results = new ArrayList<QueryResultBean1>();
    JsonArray items = json.getJsonArray("header");
    for (JsonValue item : items) {
        if (item instanceof JsonObject) {
            QueryResultBean1 result = createBean((JsonObject)item);
            results.add(result);
        }
    }
    return results;
}


public QueryResultBean1 createBean(JsonObject json) {
    QueryResultBean1 bean = new QueryResultBean1();

    // you could also change tags to a List
    JsonArray array = json.getJsonArray("header");
    String[] h1 = new String[array.size()];
    for (int i = 0; i < h1.length; i++) {
        h1[i] = array.getString(i);
    }
    bean.setTags(h1);
    retrun bean}

我尝试为JSON文件执行以下代码:

"header":[  
  {  
     "request_id":1547706529870,
     "file_name":"Sm-1547706529870.xlsm",
     "file_type":"CIR",
     "status":"NEW",
     "is_end":false
  }

将错误显示为:

  

`线程“ main”中的异常com.example.webjson.com.webjson.p1.JsonpJsonParser.createBean(JsonpJsonParser.java:60)java.lang.NullPointerException

需要帮助以JAVA解析DATA.JSON文件

1 个答案:

答案 0 :(得分:0)

在下面的代码中:

JsonArray array = json.getJsonArray("header");

您正尝试从String?中检索JsonArray,您应该使用类似这样的索引来检索数组中的元素:

JsonArray array = json.getJsonArray(0);