【问题标题】:Convert object to HTTP Request Parameters (key/value pairs)将对象转换为 HTTP 请求参数(键/值对)
【发布时间】:2013-10-14 07:23:22
【问题描述】:

假设我有一个像这样的对象模型:

class B {
    string msg;
}

class A {
    string name;
    int[] nums;
    B obj;
}

A 实例序列化为 JSON 时,它看起来像:

{"name": "John", "nums": [1,2,3], "obj": {"msg" : "foo" }} 

所以我正在寻找可以将此对象序列化为标准 HTTP POST/PUT 表单数据或 GET 查询字符串参数的转换器,例如查看以下请求正文,我需要获取以下内容

name=John&nums[0]=1&nums[1]=2&nums[2]=3&obj.msg=foo

我找不到执行此过程的任何库(将对象转换为键值映射、递归并支持集合)。

感谢您的帮助。

【问题讨论】:

    标签: java rest serialization marshalling


    【解决方案1】:

    如果默认转换不适合您,您可以尝试 Jacksonmapper 并提供您的自定义映射器实现。如果您在项目中使用 Spring,它也可以很好地与 Spring 集成。

    【讨论】:

    • 我很惊讶这还没有现成的,在写我自己的之前我会多看看。
    【解决方案2】:

    google-gson 应该可以帮助您: http://code.google.com/p/google-gson/

    用户指南:https://sites.google.com/site/gson/gson-user-guide#TOC-Nested-Classes-including-Inner-Classes-

    然后您可以使用此库将 JSON 转换为 GET url:http://api.jquery.com/jQuery.param/

    【讨论】:

    • fjammes,我不想使用 JSON。我想将我的对象编组为键值对。请仔细阅读问题。
    猜你喜欢
    • 1970-01-01
    • 2010-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-28
    • 2018-05-10
    • 2022-08-18
    相关资源
    最近更新 更多