---
title: JSON-formatted complex SCIM 2.0 attribute mappings
description: Learn about JSON-formatted complex SCIM 2.0 attribute mappings in PingDataSync, which create complex SCIM attributes from LDAP attributes holding JSON object strings.
component: pingdirectory
version: 11.1
page_id: pingdirectory:pingdatasync_server_administration_guide:pd_sync_json_formatted_complex_scim2_attr_map
canonical_url: https://docs.pingidentity.com/pingdirectory/11.1/pingdatasync_server_administration_guide/pd_sync_json_formatted_complex_scim2_attr_map.html
llms_txt: https://docs.pingidentity.com/pingdirectory/llms.txt
docs_for_agents: https://developer.pingidentity.com/build-with-ai/docs-for-agents.md
revdate: September 13, 2023
---

# JSON-formatted complex SCIM 2.0 attribute mappings

JavaScript Object Notation (JSON) *(tooltip: \<div class="paragraph">
\<p>An open, lightweight data-interchange format that uses human-readable text to store and transmit data.\</p>
\</div>)*-formatted complex System for Cross-domain Identity Management (SCIM) *(tooltip: \<div class="paragraph">
\<p>An application-level, HTTP-based protocol for provisioning and managing user identity information. SCIM supplies a common schema for representing users and groups and provides a REST API.\</p>
\</div>)* 2.0 attribute mappings can be used to create complex SCIM attributes from Lightweight Directory Access Protocol (LDAP) *(tooltip: \<div class="paragraph">
\<p>An open, cross platform protocol used for interacting with directory services.\</p>
\</div>)* attributes whose values are the string representations of JSON objects.

Unless the data is already stored in that format in the sync source, then it could be more complicated to produce this format (possibly requiring sync attribute mappings or even a sync destination plugin), but it does provide the ability to generate multivalued complex attributes.

Additional configuration properties that are available for JSON-formatted complex SCIM 2.0 attribute mappings include:

* `ldap-attribute-name`

  The name of the LDAP attribute (in the mapped representation of the source entry generated by the sync class) whose values will be used as the values of the SCIM 2.0 attribute. This is required, and the LDAP attribute must have values that can be parsed as JSON objects.

* `single-valued`

  Indicates whether the SCIM 2.0 attribute is single-valued or multivalued. If this is `true`, then the SCIM 2.0 representation of the attribute value will be as a JSON string. If this is `false`, then the SCIM 2.0 representation of the attribute value will be as a JSON array of strings.

You can use the following example configuration change to create a JSON-formatted complex SCIM 2.0 attribute mapping:

```
dsconfig create-scim2-attribute-mapping \
     --mapping-name "Email Addresses" \
     --type json-formatted-complex \
     --set scim-attribute-name:emails \
     --set ldap-attribute-name:ubidEmailJSON \
     --set attribute-usage:fetch \
     --set attribute-usage:create-during-realtime-sync \
     --set attribute-usage:create-during-resync \
     --set attribute-usage:update-during-realtime-sync \
     --set attribute-usage:update-during-resync \
     --set single-valued:false
```
