2014-12-02 74 views
0

我想用這個JSON解析器 https://github.com/inqwell/json的JavaCC - JSON解析

和我編譯JSON.jj 但它不具備的主要方法,所以我嘗試寫的主要方法 但是不行 我寫的主方法這樣

公共類JSONParserMain {

public static void main(String[] args) { 
    FileReader fr; 
    try { 
     fr = new FileReader("test.json"); 

     JSON<Map<String, Object>, List<Object>> parser = new JSON<Map<String, Object>, List<Object>>(fr); 

     parser.parse(new NothingHandler()); 
    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } catch (ParseException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 
private static class NothingHandler extends DefaultHandler<Map<String, Object>, List<Object>> {} 

}

此代碼是指JSONTest.java 但解析方法返回null 我該如何編寫「test.json」的主要方法?

「test.json」 是這裏

{ 「根」:{ 「數據」: [ [ { 「一」: 「字符串AA」 }, 「字符串A2」 ], { 「PI」:3.142, 「C」:1234567.9 }, { 「貓」: 「東西在我的貓」, 「A3」: 「」, 「fooinstance」:{ 「的typedef」: 「xmltest_types_FooType」, 「註釋」: 「評論&一個'人物,世界berslackers團結」, 「HotFlag」: 「M」, 「LASTUPDATED」:空, 「產品編號」:空, 「速率」 :1.235, 「大」:3456789.01 }, 「keyK」:{ 「HotFlag」:空, 「__key」: 「K」, 「__descriptor」: 「xmltest.types.FooType」 }} ],...........(略過)

+0

你確定你需要的JSON基於JavaCC的解析器?不是像[GSON](https://code.google.com/p/google-gson/)這樣隨時可用的圖書館?只是問問。 – lexicore 2014-12-03 08:25:05

回答

1

NothingHandler是原因要退回null。改爲使用BasicHandler。你還需要將線

parser.parse(new NothingHandler()); 

改變

Object result = parser.parse(new BasicHandler()); 
// do something with result