簡體   English   中英

一個 JSon 數組 - 格式和解析

[英]A JSon Array - Format & Parsing

我有以下代碼用於解析帶有 Jackson 的文件中的 json 數據。

   ObjectMapper mapper  = new ObjectMapper();
   JsonFactory jsonFactory = new JsonFactory();
   try(BufferedReader br = new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("/foos.json")))) {
     Iterator<Foo> fooItr = mapper.readValues( jsonFactory.createParser(br), Foo.class);
     fooItr.forEachRemaining(System.out::println);        
   }catch(Exception ex){ .. }

不適用於以下格式的 JSon 數組

[
  {...},
  {...}
]

但為一種格式工作

  {...}
  {...}

什么是 JSon 數組格式的正確解析方法?

將列表作為類而不是 Foo 類傳遞,其中使用映射器進行序列化

嘗試這個 -

        List<Foo> tempList = new ArrayList<>();
    
        JsonFactory jsonFactory = new JsonFactory();
       try(BufferedReader br = new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("/foos.json")))) {
           tempList = mapper.readValues( jsonFactory.createParser(br), tempList.getClass());

 Iterator<Foo> fooItr  =  tempList.listIterator(); 
            fooItr.forEachRemaining(System.out::println);
        }catch(Exception ex){ .. }

我找到了如下解決方案

ObjectMapper mapper  = new ObjectMapper();
List<MyDataHolder> list = mapper.readValue(
  new InputStreamReader(getClass().getResourceAsStream("/foos.json")),
  new TypeReference<ArrayList<MyDataHolder>>() {});

json 數據在一個文件中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM