怎么解析出多层嵌套json
FineReport yyl120 发布于 2023-3-31 13:12
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
PikaLv6见习互助
发布于2023-3-31 13:15

json字符串?转成json对象,在json名字.属性就行啊,用js

最佳回答
0
百煮味香Lv5初级互助
发布于2023-3-31 14:23

在FineReport中解析多层嵌套的JSON可以通过以下步骤实现:

  1. 首先,在报表中添加一个表格或者交叉表,用于展示JSON数据;

  2. 在数据集中定义一个JSON类型的数据源,并在数据集SQL中查询JSON数据;

  3. 在表格或交叉表的数据集中使用以下函数将JSON数据解析为多个字段:

JSON_EXTRACT(jsonStr, path1, path2, ..., pathN) 

其中,jsonStr是要解析的JSON字符串,path1到pathN是需要解析的JSON路径。例如,对于以下JSON数据:

{

  "name": "Tom",

  "age": 25,

  "contact": {

    "phone": "123456789",

    "email": "tom@example.com"

  }

}

如果要解析出name、age和phone三个字段,可以使用以下代码:

JSON_EXTRACT(jsonStr, '$.name') as name,

JSON_EXTRACT(jsonStr, '$.age') as age,

JSON_EXTRACT(jsonStr, '$.contact.phone') as phone

这样就可以将JSON数据解析为多个字段,并在报表中展示出来了。

需要注意的是,在使用JSON_EXTRACT函数时,需要注意JSON路径的书写方式。JSON路径中用$表示JSON根节点,用.表示层级关系。例如,$.name表示根节点下的name字段,而$.contact.phone表示根节点下的contact对象下的phone字段。

如果JSON数据比较复杂,可以使用JSONPath或者XPath等语法来解析JSON。在FineReport中,可以使用以下函数进行JSONPath解析:

JSON_EXTRACT_PATH(jsonStr, jsonPath)

其中,jsonStr是要解析的JSON字符串,jsonPath是JSONPath语法的字符串。例如,使用以下代码可以解析出name字段:

JSON_EXTRACT_PATH(jsonStr, '$.name')

需要注意的是,使用JSONPath需要先了解JSONPath的语法规则,否则可能会解析失败。

  • 3关注人数
  • 683浏览人数
  • 最后回答于:2023-3-31 14:23
    请选择关闭问题的原因
    确定 取消
    返回顶部