【问题标题】:Complex html form to json object复杂的 html 表单到 json 对象
【发布时间】:2017-04-28 23:59:36
【问题描述】:

我有一个高级表格。我需要从基本的 html 页面表单发送到我的 restapi。
我的表单由基本字段组成,例如。姓名、身份证等。
我还有一个对象列表。
当我在对象中需要一个对象时,我的问题就出现了。
例如。 jsonString 对象,它是动态的,可以包含多个字段。

<input type="text" name="jsonString.field1" value="123">
<input type="text" name="jsonString.field2" value="qwe">
<input type="text" name="jsonString.fieldN" value="...">

我想要的是:

{
id: 411421,
name: asdojasfjo,
alotOfRandomFields: "Random", 
"jsonString": { 
    field1: "123",
    field2: "qwe",
    fieldN: "..." },
numbers: [1,2,3,4]
}

我的 jsonString 对象字段名称可能会有所不同,例如。 “Petname”、petage、petOwnerName 和其他可能的形式。 “职位”和“薪水”。

我知道如果我用相同的名称保存它们,我会得到一个数组,但是我看不到字段名称,将来比较所有包含宠物的文档时需要这些名称。

目前我正在使用jquery:

form.serialize();

有什么想法或建议吗?

【问题讨论】:

  • 我真的不明白为什么人们在不提供反馈的情况下对问题投反对票...

标签: javascript jquery json http post


【解决方案1】:

我已经解决了我的问题。不太喜欢它的解决方式。所以如果有人有更好的想法,请分享:)

function ConvertFormToJSON(form){
    var array = jQuery(form).serializeArray();
    var json = {jsonString:{}};
    var substring = "jsonString";
    jQuery.each(array, function() {
        if(this.name.indexOf(substring) !== -1){
            json["jsonString"][this.name.substring(10)] = this.value;
        }
        else{
            json[this.name] = this.value || '';
        }

    });

    return json;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-23
    • 2020-03-08
    相关资源
    最近更新 更多