SOLVED
Home

Add hyphen with JSON based on field length

%3CLINGO-SUB%20id%3D%22lingo-sub-1078795%22%20slang%3D%22en-US%22%3EAdd%20hyphen%20with%20JSON%20based%20on%20field%20length%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1078795%22%20slang%3D%22en-US%22%3E%3CP%3EI%20am%20trying%20to%20utilize%20JSON%20to%20conditionally%20add%20a%20hyphen%20to%20a%20single%20line%20text%20column%20based%20on%20the%20length%20of%20the%20data%20in%20the%20field.%26nbsp%3B%20I%20have%20validation%20on%20the%20same%20column%20that%20only%20allows%20entry%20of%206%20or%207%20characters.%26nbsp%3B%20If%207%20characters%20are%20entered%20the%20hyphen%20should%20display%20after%20the%203rd%20character%2C%20if%206%20characters%20are%20entered%20it%20should%20display%20after%20the%202nd%20character.%20%26nbsp%3B%3CSPAN%3EThis%20is%20what%20I%20have%20so%20far%20but%20it%20doesn't%20work...%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-javascript%22%3E%3CCODE%3E%7B%0A%20%20%22%24schema%22%3A%20%22%3CA%20href%3D%22https%3A%2F%2Fdeveloper.microsoft.com%2Fjson-schemas%2Fsp%2Fcolumn-formatting.schema.json%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fdeveloper.microsoft.com%2Fjson-schemas%2Fsp%2Fcolumn-formatting.schema.json%3C%2FA%3E%22%2C%0A%20%20%22elmType%22%3A%20%22div%22%2C%0A%20%20%22children%22%3A%20%5B%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%22elmType%22%3A%20%22span%22%2C%0A%20%20%20%20%20%20%22txtContent%22%3A%20%7B%0A%20%20%20%20%20%20%20%20%22operator%22%3A%20%22%3F%22%2C%0A%20%20%20%20%20%20%20%20%22operands%22%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22operator%22%3A%20%22%3D%3D%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22operands%22%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%40currentField.length%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%227%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22operator%22%3A%20%22%3F%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22operands%22%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22operator%22%3A%20%22%2B%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22operands%22%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%40currentField.0%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%40currentField.1%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%40currentField.2%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22-%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%40currentField.3%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%40currentField.4%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%40currentField.5%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%40currentField.6%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22operator%22%3A%20%22%2B%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22operands%22%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%40currentField.0%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%40currentField.1%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22-%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%40currentField.2%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%40currentField.3%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%40currentField.4%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%40currentField.5%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%5D%0A%7D%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-1078795%22%20slang%3D%22en-US%22%3E%3CLINGO-LABEL%3ESharePoint%20Online%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1086386%22%20slang%3D%22en-US%22%3ERe%3A%20Add%20hyphen%20with%20JSON%20based%20on%20field%20length%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1086386%22%20slang%3D%22en-US%22%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F497060%22%20target%3D%22_blank%22%3E%40cassirk%3C%2FA%3E%3C%2FP%3E%3CP%3Efigured%20it%20out%20myself.%26nbsp%3B%20I%20was%20making%20it%20way%20too%20hard.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-javascript%22%3E%3CCODE%3E%7B%0A%20%20%22%24schema%22%3A%20%22%3CA%20href%3D%22https%3A%2F%2Fdeveloper.microsoft.com%2Fjson-schemas%2Fsp%2Fv2%2Fcolumn-formatting.schema.json%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3Ehttps%3A%2F%2Fdeveloper.microsoft.com%2Fjson-schemas%2Fsp%2Fv2%2Fcolumn-formatting.schema.json%3C%2FA%3E%22%2C%0A%20%22elmType%22%3A%20%22div%22%2C%0A%20%20%22txtContent%22%3A%20%22%3Dif(%40currentField.length%20!%3D%200%2Csubstring(%40currentField%2C%40currentField.length-4%2C0)%20%2B%20'-'%20%2B%20substring(%40currentField%2C%40currentField.length-4%2C8)%2C'')%22%2C%0A%7D%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E
cassirk
New Contributor

I am trying to utilize JSON to conditionally add a hyphen to a single line text column based on the length of the data in the field.  I have validation on the same column that only allows entry of 6 or 7 characters.  If 7 characters are entered the hyphen should display after the 3rd character, if 6 characters are entered it should display after the 2nd character.  This is what I have so far but it doesn't work...

 

 

{
  "$schema": "<a href="https://developer.microsoft.com/json-schemas/sp/column-formatting.schema.json" target="_blank">https://developer.microsoft.com/json-schemas/sp/column-formatting.schema.json</a>",
  "elmType": "div",
  "children": [
    {
      "elmType": "span",
      "txtContent": {
        "operator": "?",
        "operands": [
          {
            "operator": "==",
            "operands": [
              "@currentField.length",
              "7"
            ]
          },
          {
            "operator": "?",
            "operands": [
              {
                "operator": "+",
                "operands": [
                  "@currentField.0",
                  "@currentField.1",
                  "@currentField.2",
                  "-",
                  "@currentField.3",
                  "@currentField.4",
                  "@currentField.5",
                  "@currentField.6"
                ]
              },
              {
                "operator": "+",
                "operands": [
                  "@currentField.0",
                  "@currentField.1",
                  "-",
                  "@currentField.2",
                  "@currentField.3",
                  "@currentField.4",
                  "@currentField.5"
                ]
              }
            ]
          }
        ]
      }
    }
  ]
}

 

 

 

1 Reply
Highlighted
Solution

@cassirk

figured it out myself.  I was making it way too hard.

 

 

 

 

{
  "$schema": "<a href="https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json" target="_blank">https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json</a>",
	"elmType": "div",
  "txtContent": "=if(@currentField.length != 0,substring(@currentField,@currentField.length-4,0) + '-' + substring(@currentField,@currentField.length-4,8),'')",
}

 

 

 

 

Related Conversations
JSON Clickable Action and sp-field-quickActions
AngeloEG in SharePoint on
4 Replies
Formatting document library view JSON
Jesper Würtz in SharePoint on
0 Replies
Download button in View formatting JSON
Jesper Würtz in SharePoint on
0 Replies
JSON data from cell to Columns
shubham855 in Excel on
6 Replies
How to convert JSON data into Excel table in Power Query
difat in Excel on
3 Replies