JSONPath表达式以连接两个或多个JSONPath值

问题描述

我有以下JSON数据。我有JPath可以读取 FirstName LastName ,但是无法使用单个JSONPath表达式读取两个值。有人可以在这里帮助我读取两个元素的值吗?

我想使用JSONPath表达式读取为Name = Rob | Long。我尝试了几种组合但没有用

{
   "attributes":     {
          "type":  "Contacts","url":  "/services/data/v36.0/sobjects/Contact/abc123"
    },"Id": "abc123","Salutation":  "Mr.","FirstName":  "Rob","LastName":  "Long"
}

预先感谢

解决方法

尝试使用JayWay JsonPath:

<dependency>
    <groupId>com.jayway.jsonpath</groupId>
    <artifactId>json-path</artifactId>
    <version>2.4.0</version>
</dependency>

这应该可以解决问题:concat($.FirstName,"|",$.LastName)

但是,它似乎不适用于其他JsonPath实现。

,

使用Bazaarvoice/ jolt可以轻松实现

--------JSON Input 

{
  "attributes": {
    "type": "Contacts","url": "/services/data/v36.0/sobjects/Contact/abc123"
  },"Id": "abc123","Salutation": "Mr.","FirstName": "Rob","LastName": "Long"
}

--------------spec

[
  {
    "operation": "modify-default-beta","spec": {
      // String join the values in the array x,with a comma and a space
      "fullName": "=concat(@(1,FirstName),'|',@(1,LastName))"
    }
  }
]
--------------------output
{
  "attributes" : {
    "type" : "Contacts","url" : "/services/data/v36.0/sobjects/Contact/abc123"
  },"Id" : "abc123","Salutation" : "Mr.","FirstName" : "Rob","LastName" : "Long","fullName" : "Rob|Long"
}

在-https://jolt-demo.appspot.com/

尝试一下

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...