JSON Parser如何正常工作?

时间:2015-03-07 13:10:37

标签: java

好的,我已经获得了一个构建TST(已完成)的项目,我应该在Dictionary文件上使用JSON解析器将值加载到我的Data结构中,并给出了一个基本的代码类。这是我第一次接触到这个工具,我完全不知道它是如何工作的。通常,当我想解析输入时,我只是按照

的方式做一些事情
String[] parse = txt.split("|");

然而这显然不会起作用,所以在代码的最后我看到它区别的地方(或者我认为它无论如何)The Key&值,我需要逐行阅读这些内容以提供另一种方法,我通常会使用for循环,但不知道此方法甚至使用的语法

for(int i = 0; i < JSON.Size; i++) {
   first = get.JSON_Key(i);
   last = get.JSON_Value(i);
   tst.put(key, value);
} 

显然,这将更适合伪代码,我不知道这是否在单独的容器中存储单独的值,如果是这样,使用什么来获取这些值,以下是我们给出的示例代码< / p>

public class ReadJSON
{   
    public static void main( String[] args )
    {
        String infile = "dictionary.json";
        JsonReader jsonReader;
        JsonObject jobj = null;
        try
        {
            jsonReader = Json.createReader( new FileReader(infile) );
            // assumes the top level JSON entity is an "Object", i.e. a dictionary
            jobj = jsonReader.readObject();
        }
        catch(FileNotFoundException e)
        {
            System.out.println("Could not find the file to read: ");
            e.printStackTrace();    
        }
        catch(JsonParsingException e)
        {
            System.out.println("There is a problem with the JSON syntax; could not parse: ");
            e.printStackTrace();
        }
        catch(JsonException e)
        {
            System.out.println("Could not create a JSON object: ");
            e.printStackTrace();
        }
        catch(IllegalStateException e)
        {
            System.out.println("JSON input was already read or the object was closed: ");
            e.printStackTrace();
        }
        if( jobj == null )
            return;

            Iterator< Map.Entry<String,JsonValue> > it = jobj.entrySet().iterator();//Not sure what this is doing
            Map.Entry<String,JsonValue> me = it.next();//not sure what this is doing
            String word = me.getKey();
            String definition = me.getValue().toString();

            for(int i =0; i < jsonReader.; i++) {

        }   
    }
}

任何帮助理解这个for循环的更多和正确的语法将不胜感激

1 个答案:

答案 0 :(得分:1)

代码使用JSR 353:用于JSON处理的Java API。查看https://jsonp.java.net/