0

JSONデータ構造を動的に構築しています。私のコードは正常に動作しますが、データを設定してからキー名を置き換える必要があるため、問題があります。

以下のキー名を変数の 1 つ (変数に格納した実際の要求タイプ自体) に置き換える必要があります。

以下の「requestType」キーに対してこれを行う必要があります。値に対しては機能しますが、キー名を置き換えることはできません。

以下は私のコードです:

// Create data array, used for building request message
var data = {
    requestType: { 
        item1 : null,
        item2 : null,
        item3 : null
    }
};

// Set the field array variables with data
$('input[name="item1"], [name="item2"], [name="item3"]').each(function(index) {
    if(index==0){
        data.requestType.item1 = this.value;
    } else if(index==1){
        data.requestType.item2 = this.value;
    } else if(index==2){
        data.requestType.item3 = this.value;
    }
}); 

助けてください :)

4

1 に答える 1

4

それが他の文字列を含む変数であると言っている場合requestTypeは、次の構文を使用します。

data[requestType].item1 = this.value;

基本原則は次のとおりです。

data.somePropertyName
// is equivalent to
data["somePropertyName"] // note the quotes
// is equivalent to
requestType = "somePropertyName"
data[requestType]

既存のプロパティの名前を変更したい場合は、次のようにします。

data.newPropertyName = data.requestType;
delete data.requestType;

[]必要に応じて上記の構文と組み合わせてください。

ところで、あなたが扱っているのは JSON ではなく、オブジェクト リテラルを介して作成しているオブジェクトです。JSON は常に、JavaScript のオブジェクト リテラル構文に似た構文を持つデータの文字列表現です (通常はデータ交換の目的で使用されます)。

于 2012-08-09T11:19:52.330 に答える