首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在azure逻辑应用程序中从json数组中检索值

在azure逻辑应用程序中从json数组中检索值
EN

Stack Overflow用户
提问于 2022-09-17 14:34:59
回答 2查看 206关注 0票数 0

在逻辑应用程序中,从下面的json检索"HydraulicPressure“和"FailedPickupsLastHr”值的最简单方法是什么?

代码语言:javascript
运行
复制
{
  "variables": [
    {
      "name": "sensorarray",
      "type": "String",
      "value": "{\"ContentData\":{\"applicationId\":\"0db2345\",\"deviceId\":\"178\",\"enqueuedTime\":\"2022-09-17T14:27:22.386Z\",\"enrichments\":{},\"messageSource\":\"properties\",\"messageType\":\"devicePropertyReportedChange\",\"properties\":[{\"name\":\"FailedPickupsLastHr\",\"value\":42},{\"name\":\"HydraulicPressure\",\"value\":30.863390107917837}],\"schema\":\"default@v1\",\"templateId\":\"dtmi:z\"},\"Properties\":{\"iotcentral-application-id\":\"05\",\"iotcentral-message-source\":\"properties\",\"iotcentral-message-type\":\"devicePropertyReportedChange\",\"iotcentral-device-id\":\"1q9hn5l4xcl\",\"x-opt-sequence-number\":5663,\"x-opt-offset\":\"5307784\",\"x-opt-enqueued-time\":\"2022-09-17T14:27:28.046Z\",\"message-id\":{\"EncodeSize\":38},\"group-sequence\":0},\"SystemProperties\":{\"EnqueuedTimeUtc\":\"2022-09-17T14:27:28.046Z\",\"Offset\":\"5307784\",\"PartitionKey\":null,\"SequenceNumber\":5663}}"
    }
  ]
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-09-17 23:10:15

将此定义作为新的LogicApp加载到租户中..。

代码语言:javascript
运行
复制
{
    "definition": {
        "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
        "actions": {
            "Initialize_Failed_Pickups_Last_Hr": {
                "inputs": {
                    "variables": [
                        {
                            "name": "FailedPickupsLastHr",
                            "type": "integer",
                            "value": "@variables('Object')['ContentData']['properties'][0]['value']"
                        }
                    ]
                },
                "runAfter": {
                    "Initialize_Hydraulic_Pressure": [
                        "Succeeded"
                    ]
                },
                "type": "InitializeVariable"
            },
            "Initialize_Hydraulic_Pressure": {
                "inputs": {
                    "variables": [
                        {
                            "name": "HydraulicPressure",
                            "type": "string",
                            "value": "@{variables('Object')['ContentData']['properties'][1]['value']}"
                        }
                    ]
                },
                "runAfter": {
                    "Initialize_Object": [
                        "Succeeded"
                    ]
                },
                "type": "InitializeVariable"
            },
            "Initialize_Object": {
                "inputs": {
                    "variables": [
                        {
                            "name": "Object",
                            "type": "object",
                            "value": "@JSON(variables('Payload'))"
                        }
                    ]
                },
                "runAfter": {
                    "Initialize_Payload": [
                        "Succeeded"
                    ]
                },
                "type": "InitializeVariable"
            },
            "Initialize_Payload": {
                "inputs": {
                    "variables": [
                        {
                            "name": "Payload",
                            "type": "string",
                            "value": "{\"ContentData\":{\"applicationId\":\"0db2345\",\"deviceId\":\"178\",\"enqueuedTime\":\"2022-09-17T14:27:22.386Z\",\"enrichments\":{},\"messageSource\":\"properties\",\"messageType\":\"devicePropertyReportedChange\",\"properties\":[{\"name\":\"FailedPickupsLastHr\",\"value\":42},{\"name\":\"HydraulicPressure\",\"value\":30.863390107917837}],\"schema\":\"default@v1\",\"templateId\":\"dtmi:z\"},\"Properties\":{\"iotcentral-application-id\":\"05\",\"iotcentral-message-source\":\"properties\",\"iotcentral-message-type\":\"devicePropertyReportedChange\",\"iotcentral-device-id\":\"1q9hn5l4xcl\",\"x-opt-sequence-number\":5663,\"x-opt-offset\":\"5307784\",\"x-opt-enqueued-time\":\"2022-09-17T14:27:28.046Z\",\"message-id\":{\"EncodeSize\":38},\"group-sequence\":0},\"SystemProperties\":{\"EnqueuedTimeUtc\":\"2022-09-17T14:27:28.046Z\",\"Offset\":\"5307784\",\"PartitionKey\":null,\"SequenceNumber\":5663}}"
                        }
                    ]
                },
                "runAfter": {},
                "type": "InitializeVariable"
            }
        },
        "contentVersion": "1.0.0.0",
        "outputs": {},
        "parameters": {
            "ParameterTest1": {
                "defaultValue": "\"\"",
                "type": "String"
            }
        },
        "triggers": {
            "manual": {
                "inputs": {
                    "method": "GET",
                    "schema": {}
                },
                "kind": "Http",
                "type": "Request"
            }
        }
    },
    "parameters": {}
}

它会给你我的完整的答案,并告诉你如何得到你想要的价值。

基本步骤是..。

  1. 初始化您拥有的初始JSON作为字符串。
  2. 然后使用json Expression
  3. 将该字符串转换为对象。最后两个步骤涉及表达式,以提取所需的值。

基本上,您需要将字符串值解析为一个对象,然后计算它。

票数 0
EN

Stack Overflow用户

发布于 2022-09-17 16:52:45

在我的环境中,您可以对json数组进行类似的操作,如下所示:首先,选择初始化变量步骤,然后用下面的json示例设置它:

代码语言:javascript
运行
复制
[{
"variables": 
    {
        "name": "sensorarray",
        "type": "String"
    }
}]

然后,选择选择步骤,然后从数组中选择您想要的变量,然后通过使用条目获得它,如下所示:

输出:

尝试更新您的数组作为给定的例子,并尝试上述步骤,您将得到如上所述的输出。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73755727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档