首页 > 解决方案 > HTTP 多部分数据到对象/数组树

问题描述

是否有任何库(最好是简单的 C# 库)能够解析 POST HTTP 请求的多部分数据并将其转换为由对象和/或数组节点和原始值叶子组成的树?

换句话说,让下面的 HTML :

<!DOCTYPE html>
<html>
    <body>
        <form action="whatever" method="POST">

            <input type="checkbox" name="boolean" checked="checked" />
            <input type="number" name="integer" value="123" />
            <input type="text" name="string" value="Hello world !" />

            <input type="checkbox" name="array[]" checked="chcked" />
            <input type="number" name="array[]" value="123" />
            <input type="text" name="array[]" value="Hello world !" />

            <input type="checkbox" name="object[boolean]" checked="checked" />
            <input type="number" name="object[integer]" value="123" />
            <input type="text" name="object[string]" value="Hello world !" />

        </form>
    </body>
</html>

这将生成以下表单数据,为了说明我的观点,我将其表示为 JSON:

{
    "boolean"=true,
    "integer"=123,
    "string"="Hellow world !",
    "array[0]"=true,
    "array[1]"=123,
    "array[2]"="Hello world",
    "object[boolean]"=true,
    "object[integer]"=123,
    "object[string]"="Hello world"
}

该库将“展开”数据,即将它从没有深度的地图变成树,我也将其表示为 JSON:

{
    "boolean": true,
    "integer": 123,
    "string": "Hello world !",
    "array": [
        true,
        123,
        "Hello world !"
    ],
    "object": [
        "boolean": true,
        "integer": 123,
        "string": "Hello world !"
    ]
}

这类似于 PHP 在初始化 $_POST 时所做的事情。

感谢您的帮助。

标签: c#phphttpformsmultipart

解决方案


推荐阅读