Skip to content

Incorrect Data Type Handling in json-enc Extension #131

Closed
@xehrad

Description

@xehrad

Hello,
I’ve noticed that the json-enc extension currently encodes all input values as strings, even when dealing with <input type="number"> fields. This behavior can lead to incorrect data representation in the resulting JSON when numeric values are expected.

To maintain backward compatibility while providing flexibility, I propose introducing an optional attribute (e.g., data-json-parse-data) that allows users to opt-in to automatic type parsing. When this attribute is present on the <form> element, the extension could:

  1. Convert values from <input type="number"> into actual numbers using Number().
  2. Keep the current behavior (encoding everything as strings) when the attribute is not present.

Example usage:

<form hx-ext="json-enc" hx-post="/api/endpoint" data-json-parse-data>  
  <input type="text" name="name" value="mehrad">  
  <input type="number" name="age" value="25">  
</form>

Expected JSON output with data-json-parse-data attribute:

{ "name": "mehrad", "age": 25 }

Without the attribute, the JSON output would remain:

{ "name": "mehrad", "age": "25" }

Would this feature be acceptable as a non-breaking enhancement? If you believe it’s a good idea, I would be happy to submit a PR for it.

Thanks in advance for your feedback!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions