> ## Documentation Index
> Fetch the complete documentation index at: https://docs.alumio.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Parse from selected format

> Converts a string in XML, JSON, CSV, or other formats into a data object.

export const FormField = ({property, label, required = false, diType, uiPatterns, children}) => {
  const patterns = Array.isArray(uiPatterns) ? uiPatterns : uiPatterns ? [uiPatterns] : [];
  return <div style={{
    margin: '1.5rem 0'
  }}>
      <div style={{
    display: 'flex',
    alignItems: 'baseline',
    flexWrap: 'wrap',
    gap: '0.5rem',
    marginBottom: '0.25rem'
  }}>
        <strong>{label}</strong>
        <span style={{
    fontSize: '0.7rem',
    fontWeight: 600,
    textTransform: 'uppercase',
    letterSpacing: '0.04em',
    color: required ? '#6241f5' : '#6b7280'
  }}>
          {required ? 'Required' : 'Optional'}
        </span>
      </div>

      <div>{children}</div>

      {diType || patterns.length > 0 ? <p style={{
    fontSize: '0.85rem',
    color: '#6b7280',
    marginBottom: 0
  }}>
          {diType ? <>
              See the <a href={`/references/${diType}`}>{diType}</a> reference.{' '}
            </> : null}
          {patterns.length > 0 ? <>
              Accepts a <a href={`/documentation/placeholders-and-patterns/patterns#${patterns[0]}`}>pattern</a>.
            </> : null}
        </p> : null}
    </div>;
};

Converts a string in XML, JSON, CSV, or other formats into a data object. Use this when a value arrives as one long piece of text, such as a JSON or XML document pulled from an API response, a file, or a single message field, and you want to turn it back into structured data you can read and map field by field. You choose which parser to apply, and it reads the text in that format and hands back the values it contains.

This is the flexible version of the parsers: instead of being tied to one format, you pick the parser yourself, including Raw data, Binary data, CSV, Form URL encoded, JSON, Plain text, URL decode, XML, YAML, and cXML. If you already know the format, the dedicated options (Parse from JSON, Parse from XML, and so on) are usually quicker to set up.

This documentation describes: [Schema](/schemas/mapper/deserialize)

## Fields

<FormField property="deserializer" label="Parser" required diType="deserializer">
  The parser that reads the incoming text. Choose the one that matches the format of your data, such as JSON, XML, YAML, or Form URL encoded. The parser decides how the text is interpreted and what structure comes back, so it must match the actual format of the input.
</FormField>

## Sample data

| Field  | Value           |
| ------ | --------------- |
| Parser | Parse from JSON |

Input:

```json theme={null}
{
    "payload": "{\"sku\":\"A1\",\"name\":\"Wool scarf\",\"price\":19.99}"
}
```

Output:

```json theme={null}
{
    "payload": {
        "sku": "A1",
        "name": "Wool scarf",
        "price": 19.99
    }
}
```

```json Configuration theme={null}
{
  "prototype": "deserialize",
  "parameters": {
    "deserializer": {
      "prototype": "json"
    }
  }
}
```
