2014-12-02 68 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