[
{
"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 提前致谢。
答案 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 强>
输入以下内容:
并输入您的班级名称,例如&#34; ParsedSentence&#34;
然后,编写代码。你会得到对象。
Gson gson = new Gson();
ParsedSentence parsed = gson.fromJson(longLongJsonString, ParsedSentence.class);