如何使用GSON库在java中贪婪地提取JSON?

如何使用GSON库在java中贪婪地提取JSON?,java,json,gson,Java,Json,Gson,在中,作者介绍了如何使用。主要示例显示了如何解析名为“staff.json”的json文件,如下所示: { "name": "mkyong", "age": 35, "position": [ "Founder", "CTO", "Writer" ], "skills": [ "

在中,作者介绍了如何使用。主要示例显示了如何解析名为“staff.json”的json文件,如下所示:

{
  "name": "mkyong",
  "age": 35,
  "position": [
    "Founder",
    "CTO",
    "Writer"
  ],
  "skills": [
    "java",
    "python",
    "node",
    "kotlin"
  ],
  "salary": {
    "2018": 14000,
    "2012": 12000,
    "2010": 10000
  }
}
下面的Java代码可以读取文件,对其进行解析,并创建一个“Staff”Java对象,加载所有上述数据,最后打印名为“Staff”的Java对象,并使用小写字母“s”:

运行上述代码会得到以下输出:

职员{name='mkyong',年龄=35岁,职位=[创始人、首席技术官、作家], 技能=[java,python,node,kotlin],薪水={2018=14000,2012=12000, 2010=10000}

假设我将以下内容附加到“staff.json”中,如下所示:

{
  "name": "mkyong",
  "age": 35,
  "position": [
    "Founder",
    "CTO",
    "Writer"
  ],
  "skills": [
    "java",
    "python",
    "node",
    "kotlin"
  ],
  "salary": {
    "2018": 14000,
    "2012": 12000,
    "2010": 10000
  }
}
\x00\x0d;ldlk4jkladsfl;kmasdlk\d\g\sd===dsafdsfagf\dgas56yjghg\dafd\g\dfa
fdsaffdas]\fg\n\n\n\n\n\n\n\\t\t\t\t\t\t\\\\\s
adfdgt\\\g\\\fdgdf\sg\df<-----END OF FILE HERE NOW
{
“姓名”:“mkyong”,
“年龄”:35岁,
“职位”:[
“创始人”,
“首席技术官”,
“作者”
],
“技能”:[
“爪哇”,
“python”,
“节点”,
“科特林”
],
“薪金”:{
"2018": 14000,
"2012": 12000,
"2010": 10000
}
}
\x00\x0d;ldlk4jklasfl;kmasdlk\d\g\sd==dsafdsfagf\dgas56yjghg\dafd\g\dfa
fdsaffdas]\fg\n\n\n\n\n\n\n\\t\t\t\t\t\t\s

adfdgt\\\g\\\fdgdf\sg\df您面临什么问题以及您试图解决什么问题?首先找到有效的json字符串({*}),然后读取为java对象?看起来Gson不能做您想做的事情。但是可以。杰克逊也支持这种行为。您可以使用
反序列化功能关闭/打开它。在跟踪令牌上失败。我不一定需要使用Gson。如果有人可以修改上面的代码来使用jackson,那就太好了。
{
  "name": "mkyong",
  "age": 35,
  "position": [
    "Founder",
    "CTO",
    "Writer"
  ],
  "skills": [
    "java",
    "python",
    "node",
    "kotlin"
  ],
  "salary": {
    "2018": 14000,
    "2012": 12000,
    "2010": 10000
  }
}
\x00\x0d;ldlk4jkladsfl;kmasdlk\d\g\sd===dsafdsfagf\dgas56yjghg\dafd\g\dfa
fdsaffdas]\fg\n\n\n\n\n\n\n\\t\t\t\t\t\t\\\\\s
adfdgt\\\g\\\fdgdf\sg\df<-----END OF FILE HERE NOW