2016-08-01 67 views
0

我對JSON新的,我想用設備ID讀取JSON文件,我有一個文件的許多文件,就像一個數據庫:如何使用Java在單個JSON文件中讀取多個JSON文檔?

{ 
     "deviceType":"AccessPoint", 
     "transactionType":"response", 
     "messageType":"set_config", 
     "classes":[ 
      { 
       "deviceType":"AccessPoint", 
       "classId":1, 
       "ipv4":"192.168.100.100", 
       "netmask":"192.168.100.100", 
       "ipv6":"192.168.100.100", 
       "className":"Interface", 
       "interfaceName":"wlan0", 
       "state":"UP", 
       "type":"wireless", 
       "deviceId":"1234", 
       "status":"waiting" 
      } 
     ], 
    "deviceId":"1234", 
    "transactionId":"201675" 
    } 

有時候,班陣列包含多個陣列比如索引[ {},{},..]。 那麼,如何使用java web應用程序的搜索條件閱讀文檔。

+0

這只是一個片段還是「有效的」結構?您發佈的內容有兩個根元素,並且兩者之間沒有逗號分隔(如果它們是數組的元素)。 – randomUser56789

+0

sanjay,做類內重複值或整個結構重複? –

+0

裏面的類的值是重複的 –

回答

0

出於好奇,在傑克遜(流分析器,因爲有大量的元素提及)做了一些事情。我只是做一個輸出作爲名稱:值,這可以在邏輯上增強,以適應您的口味。這甚至不接近生產,但是一個好的開始。

import java.io.FileInputStream; 
import com.fasterxml.jackson.core.JsonFactory; 
import com.fasterxml.jackson.core.JsonParser; 
import com.fasterxml.jackson.core.JsonToken; 

public class TestClass { 

    public static void main(String[] args) { 
     try (FileInputStream fis = new FileInputStream("yourpath/transactions.json")) { 
      JsonFactory jf = new JsonFactory(); 
      JsonParser jp = jf.createParser(fis); 
      //System.out.println(JsonToken.START_ARRAY); 
      // jp.setCodec(new ObjectMapper()); 
      jp.nextToken(); 
      while (jp.hasCurrentToken()) { 

       if (jp.getCurrentToken().equals(JsonToken.START_OBJECT) 
         || jp.getCurrentToken().equals(JsonToken.START_ARRAY) 
         || jp.getCurrentToken().equals(JsonToken.END_ARRAY) 
         || jp.getCurrentToken().equals(JsonToken.END_OBJECT)) { 
       } else { 
        System.out.print(jp.getText()); 
        jp.nextToken(); 
        System.out.print(":"); 
        System.out.print(jp.getText()); 
        System.out.println(); 
       } 
       jp.nextToken(); 
      } 
     } catch (Exception ex) { 
      ex.printStackTrace(); 
     } 
    } 
} 
相關問題