如何使用gson将树结构的json转换为Java对象

时间:2017-09-28 00:26:10

标签: java json tree gson

 [
  {
    "sentence": "I want to buy shoes .", 
    "tree": {
      "ROOT": [
        {
          "index": 2, 
          "token": "want", 
          "label": "VERB", 
          "pos": "VBP", 
          "tree": {
            "nsubj": [
              {
                "index": 1, 
                "token": "I", 
                "label": "PRON", 
                "pos": "PRP"
              }
            ], 
            "xcomp": [
              {
                "index": 4, 
                "token": "buy", 
                "label": "VERB", 
                "pos": "VB", 
                "tree": {
                  "aux": [
                    {
                      "index": 3, 
                      "token": "to", 
                      "label": "PRT", 
                      "pos": "TO"
                    }
                  ], 
                  "dobj": [
                    {
                      "index": 5, 
                      "token": "shoes", 
                      "label": "NOUN", 
                      "pos": "NNS"
                    }
                  ]
                }
              }
            ], 
            "punct": [
              {
                "index": 6, 
                "token": ".", 
                "label": ".", 
                "pos": "."
              }
            ]
          }
        }
      ]
    }
  }
]

这是在Json中表示的树。但嵌套节点的密钥不断变化 例如“ROOT,nsubj,xcomp”......等 如何使用gson将上面的json代码转换为Java Object。

以上回复来自于我正在尝试使用的syntaxnet Parsey_Mcparseface api 提前致谢。

1 个答案:

答案 0 :(得分:0)

Gson有一个方法Gson#fromJson。例如,这是一个读取简单String对象的代码。

    Gson gson = new Gson();
    String str = gson.fromJson("\"hello\"", String.class);
    System.out.println("String: " + str);

您需要准备Java Object来阅读您提议的JSON。但是,您不需要自己编写代码。有一个网站提供自动JSON对象生成器。

<强> jsonschema2pojo

输入以下内容:

  • 目标语言:Java
  • 来源类型:JSON
  • 注释类型:Gson

并输入您的班级名称,例如&#34; ParsedSentence&#34;

然后,编写代码。你会得到对象。

    Gson gson = new Gson();
    ParsedSentence parsed = gson.fromJson(longLongJsonString, ParsedSentence.class);

jsonschema2pojo screenshot