0

私はJSONが初めてで、それが機能していることを理解しようと懸命に努力しています。

HTML

<form id="edge" class="form-horizontal" method="post" action="javascript:submit();">
    <input type="text" class="input-xlarge" id="latency" name="latency" placeholder="latency">
    <input type="text" class="input-xlarge" id="throughput" name="throughput" placeholder="throughput">
    <input type="text" class="input-xlarge" id="outUID" name="outUID" placeholder="outUID">
    <input type="text" class="input-xlarge" id="inUID" name="inUID" placeholder="inUID">
    <button type="submit" class="btn btn-success" >Submit Data</button>
</form>

次のように生成される JSON 文字列:

{"latency":1.6,"throughput":6.01,"outUID":{"V_ID":"40"},"inUID":{"V_ID":"16"}}

生成されるフォームと JSON 文字列は次のとおりです。

ネストされた JSON オブジェクトを作成する方法を教えてもらえますか?

4

3 に答える 3

0

このコードにより、必要に応じてフィールド属性をハードコーディングせずにフィールドを追加できます

http://jsfiddle.net/6vQY9/

HTML

<form id="edge" class="form-horizontal" method="post" action="javascript:submit();">
    <input type="text" class="input-xlarge" id="latency" name="latency" placeholder="latency">
    <input type="text" class="input-xlarge" id="throughput" name="throughput" placeholder="throughput">
    <input type="text" class="input-xlarge" id="outUID" name="outUID" placeholder="outUID" data-prop="V_ID">
    <input type="text" class="input-xlarge" id="inUID" name="inUID" placeholder="inUID" data-prop="V_ID">
    <button type="submit" class="btn btn-success">Submit Data</button>
</form> <pre></pre>

JS

function submit() {
    var JSONString = "";
    jQuery('#edge input').each(function () {
        var that = jQuery(this);
        var val = that.val();
        var partJSON = "";
        var quote = "\"";
        if (that.data('prop')) {
            partJSON = "{ " + quote +that.data('prop') + quote+ " : " + quote + val + quote + " }";
        } else {
            partJSON = val;
        }
        var comma = that.next('input').length > 0 ? "," : "";

        partJSON = quote + that.prop('id') + quote + ":" + partJSON + comma;
        JSONString += partJSON

    });

    JSONString = "{ " + JSONString + " }";

    jQuery('pre').text(JSONString);
}
于 2013-08-21T14:01:30.253 に答える
0

純粋な JavaScript の例

var els=document.getElemtById('edge').getElementsByTagName('input');

また

var els=document.querySelectorAll('input[class=input-"xlarge"]');

要素を取得するには

それから

var array=[]
for(var a=0,b;b=els[a]; ++a){
 array[a]=b.value
}

配列はjsonオブジェクトです

JSON.styringify(array)

json文字列です

ヒント: これを ajax で使用する場合は、FormData(); という新しい方法があります。

それで:

var fd=FormData(document.getElemtById('edge'));

ファイルを含むフォーム全体を含む

于 2013-08-21T13:38:06.817 に答える