当前位置: 首页 > 知识库问答 >
问题:

如何收集JSON内标记的所有其他值,即使异常为'com'。乱穿马路。jsonpath。是否引发PathNotFoundException `异常?

宋正真
2023-03-14

考虑下面的代码片段-

{
    "header": {
        "systemId": "1"
    },
    "body": {
        "approvalType": "S",
        "requester": "CRM",
        "approver": "V",
        "additionalInfoList": [
            {
                "additionalInfoItem": {
                    "value": [
                        {
                            "secret": [
                                {
                                    "question": "1"
                                }
                            ]
                        },
                        {
                            "secret": [
                                {
                                    "question": "2"
                                }
                            ]
                        },
                        {
                            "secret": [
                                {
                                    "question": "3"
                                }
                            ]
                        }
                    ]
                }
            },
            {
                "additionalInfoItem": {
                    "name": "key2",
                    "value": [
                        {
                            "secret": [
                                {
                                    "question": "00"
                                }
                            ]
                        },
                        {
                            "secret": [
                                {
                                    "question": "002"
                                }
                            ]
                        },
                        {
                            "secret": [
                                {
                                    "question": "003"
                                }
                            ]
                        }
                    ]
                }
            }
        ]
    }
}

对于这个json路径

$.body.additionalInfoList[*].additionalInfoItem.value[*].secret[*].question 

API给出了

[
   "1",
   "2",
   "3",
   "00",
   "002",
   "003"
]

我使用配置REQUIRE_PROPERTIES选项,配置JsonPath需要在路径中定义的属性,当一个不确定的路径被计算。

如果在上面的JSON中,一个问题没有在请求中发送,则会抛出如下异常-路径:$['body']['additionalInfoList'][1]['additionalInfoItem']['value'][0]['secret'][0]['question']

我需要收集问题标记的所有其他值,即使抛出了异常com.jayway.jsonpath.PathNotFoundExc0019。我该如何实现这一点?

另一方面,如果我使用选项SUPPRESS_EXCEPTIONS,我如何知道是否有丢失的路径?

共有1个答案

齐威
2023-03-14

我这里没有一个很好的答案;但是,为了完成这项工作,我建议对响应进行两次处理:

  • 一旦有了SUPPRESS_EXCEPTIONS(或者根本没有选择也可能有效),
  • 然后用REQUIRE_PROPERTIES来检测错误。

这应该允许您按照所描述的方式处理场景。

 类似资料:
  • 我有一个Json响应,如下所示。这里的区别是我的Json主体有一个数字作为父节点。 路径$[“22388043”][0][“移动号码”]没有结果 请就此提出意见。

  • 我对从JBPM工作项处理程序抛出异常并在业务流程的其他地方处理异常的主题有点困惑。我们使用JBPM 6.0.3在Jboss EAP 6.1中运行。 JBPM用户指南暗示您永远不应该从WorkItemHandler中抛出异常。相反,处理程序应该捕获它们并以某种方式处理它们,或者将它们转换为错误消息、信号或类似信息。JBPM甚至提供了工作项处理程序包装器,用于捕获信号并将它们转换为消息。用户指南中没有

  • 你可以使用raise语句 引发 异常。你还得指明错误/异常的名称和伴随异常 触发的 异常对象。你可以引发的错误或异常应该分别是一个Error或Exception类的直接或间接导出类。 如何引发异常 例13.2 如何引发异常 #!/usr/bin/python # Filename: raising.py classShortInputException(Exception):     '''A u

  • 1)手机端:统计-选择异常情况-修改原因-标记为正常。 2)web端新增“异常考勤记录”,支持对考勤组员工的异常打卡结果进行批量修改和备注。

  • 问题内容: 我想知道只有Integer.parseInt(无论如何)都不会失败的情况下才能做些什么。 更具体地说,我有一个jTextArea用户指定值,由换行符分隔。 我想检查每一行,看看是否可以转换为整数。 想出了类似的东西,但是不起作用: 任何帮助表示赞赏。 问题答案:

  • 问题内容: 有谁知道是否存在可以测试被测代码中是否抛出异常的或类似东西? 问题答案: