-2

I am trying to extract the fields in the below sample data

{"Value":{"Data":{"Items":[{"FieldType":"ABC","Value":"*****"},{"FieldType":"ACB","Value":"*****"},{"FieldType":"ABCD","Value":"*****"},,{"FieldType":"XYZ","Value":"*****"}],"EncryptedDocKey":"*****","Domain":"*****","Partner":"***","Carrier":"****"},"RequestTrackerId":"****","Message":"OK"},"Formatters":[],"ContentTypes":[],"DeclaredType":null,"StatusCode":null}

{"Value":{"Data":{"Items":[{"FieldType":"ABC","Value":"*****"},{"FieldType":"XYZ","Value":"*****"},{"FieldType":"ACD","Value":"*****"}],,"EncryptedDocKey":"*****","Domain":"*****","Partner":"***","Carrier":"****"},"RequestTrackerId":"****","Message":"OK"},"Formatters":[],"ContentTypes":[],"DeclaredType":null,"StatusCode":null}

{"Value":{"Data":{"Items":[{"FieldType":"XYZ","Value":"*****"},{"FieldType":"ACD","Value":"*****"}],,"EncryptedDocKey":"*****","Domain":"*****","Partner":"***","Carrier":"****"},"RequestTrackerId":"****","Message":"OK"},"Formatters":[],"ContentTypes":[],"DeclaredType":null,"StatusCode":null}

{"Value":{"Data":{"Items":[{"FieldType":"ABCD","Value":"*****"}],,"EncryptedDocKey":"*****","Domain":"*****","Partner":"***","Carrier":"****"},"RequestTrackerId":"****","Message":"OK"},"Formatters":[],"ContentTypes":[],"DeclaredType":null,"StatusCode":null}

I need to extract the text next to FieldType (ABC,XYZ,ABCD,ACB,ACB ...) into V1,V2,V3,V4,V5 etc...

I have a regex that can get if there are three fields but the regex is not mapping if there are more or less than 3 fields.

I tried this regex

.?"FieldType":"(?<V1>\w+)".+?"FieldType":"(?<V2>\w+).+?"FieldType":"(?<V3>\w+)

Also I want to extract all the fields in fieldtype and ,EncryptedDocKey,Domain,Partner,Carrier,RequestTrackerId,Message,Formatters,ContentTypes,DeclaredType,StatusCode

Praveen
  • 11
  • 3
  • Why you don't use JSON.NET? – JohnyL Jul 09 '19 at 18:33
  • I strongly suggest you do not parse JSON yourself, and certainly not with regexes. Here's an article I wrote on the topic: https://blog.newrelic.com/engineering/7-things-never-code/ – Andy Lester Jul 09 '19 at 21:07

1 Answers1

0

It'd be unnecessary to apply regular expressions here, yet if you have to, an expression similar to:

"(FieldType)":"([^"]+)"|"(message)":"([^"]+)"

might extract those desired key values.

DEMO

Community
  • 1
  • 1
Emma
  • 27,428
  • 11
  • 44
  • 69