java如何简单快速处理json中的数据

java如何简单快速处理 json 中的数据,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

成都创新互联长期为成百上千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为柳北企业提供专业的成都做网站、网站建设,柳北网站改版等技术服务。拥有十载丰富建站经验和众多成功案例,为您定制开发。

JSONstr.json的runners字段是子文档,子文档有3个字段:horseId、ownerColours、trainer,其中trainer含有下级字段trainerId。需要根据文档序号查询对应子文档的horseId、ownerColours、trainerId字段。部分源数据如下:

[

   {

      "race": {

          "raceId":"1.33.1141109.2",

          "meetingId":"1.33.1141109"

      },

      ...

      "numberOfRunners": 2,

      "runners": [

        {

              "horseId":"1.00387464",

              "trainer": {

                  "trainerId":"1.00034060"

              },

          "ownerColours":"Maroon,pink sleeves,dark blue cap."

          },

          {

              "horseId":"1.00373620",

              "trainer": {

                  "trainerId":"1.00010997"

              },

          "ownerColours":"Black,emerald green cross of lorraine,striped sleeves."

          }

      ]

   },

...

]

期望Json结构化后的效果:

java如何简单快速处理 json 中的数据

Java只提供了解析Json的基础类库,但API接口多而繁琐,如果想进行深入的计算,仍然需要复杂硬编码。大概要写成这样:

...

JSONObject jsonObject = JSONObject.fromObject(s);

JSONArray result = jsonObject.getJSONArray("runners");

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

        JSONArray index = result.getJSONObject(i).getJSONArray("index");

        ...

}

...

Json解析,用集算器SPL会简单很多,它把Json类库做了二次封装,且有丰富强大的集合运算能力,所以很容易应对。比如上面问题,取出第 1 个 runners 字段 (子文档),仅需3行:


A

1

=json(file("/workspace/JSONstr.json").read())

2

=A1(1).runners

3

=A2.new(horseId,trainer.trainerId:trainerId,ownerColours)

Json 解析出来一般都是为了计算,所以 SPL 还能更方便地计算,比如:按 horseId 分组统计每组中 ownerColours 出现的次数;只需在此基础上增加 1 行:=A3.groups(horseId;~.array().count():times)。

看完上述内容,你们掌握java如何简单快速处理 json 中的数据的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!

当前题目:java如何简单快速处理json中的数据
文章路径:https://www.cdcxhl.com/article0/jicpio.html

成都网站建设公司_创新互联,为您提供面包屑导航网站导航自适应网站做网站网站设计网站设计公司

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

外贸网站制作