0

現在、asp.net mvc 4 アプリケーションに取り組んでいます。

強く型付けされたビューがあります。

ビュー内には、次のものがあります。

<script type="text/javascript">
    $(document).ready(function () {

        var resultJSON = $.parseJSON(JSON.stringify(@Html.Raw(Model.Json)));
        console.log(resultJSON);
    });
</script>

I の後console.log(resultJSON)、次の結果が得られます。

{
    "Log": {
        "ShowFormatDropdown": true,
        "ShowGroupDropdown": false,
        "ShowStartDateAndYearDropdown": false,
        "ShowEndDateAndYearDropdown": false,
        "ShowStartEndDateTextbox": true,
        "ShowMachineNameDropdown": true,
        "ShowSeverityDropdown": true,
        "ShowSummaryDetailRadioButton": false,
        "ShowMessageTextbox": true,
        "ShowIPAddressTextbox": true,
        "ShowCorrelationTextbox": true,
        "ShowDINTextbox": false
    },
    "RefillRequest": {
        "ShowFormatDropdown": true,
        "ShowGroupDropdown": true,
        "ShowStartDateAndYearDropdown": true,
        "ShowEndDateAndYearDropdown": true,
        "ShowStartEndDateTextbox": false,
        "ShowMachineNameDropdown": false,
        "ShowSeverityDropdown": false,
        "ShowSummaryDetailRadioButton": true,
        "ShowMessageTextbox": false,
        "ShowIPAddressTextbox": false,
        "ShowCorrelationTextbox": false,
        "ShowDINTextbox": false
    },
    "PatientSubscriptions": {
        "ShowFormatDropdown": true,
        "ShowGroupDropdown": true,
        "ShowStartDateAndYearDropdown": true,
        "ShowEndDateAndYearDropdown": true,
        "ShowStartEndDateTextbox": false,
        "ShowMachineNameDropdown": false,
        "ShowSeverityDropdown": false,
        "ShowSummaryDetailRadioButton": true,
        "ShowMessageTextbox": false,
        "ShowIPAddressTextbox": false,
        "ShowCorrelationTextbox": false,
        "ShowDINTextbox": false
    }
}

私の目標は、「 RefillRequestKeyなどを渡すことができる関数を持つことです。

var settings = mySuperFunction(resultJSON, "RefillRequest");

これは、渡したキー「 RefillRequestsettings 」に基づいて関連する値のみを保持する辞書になります。

settings次のようなものを保持します:

"ShowFormatDropdown": true,
"ShowGroupDropdown": true,
"ShowStartDateAndYearDropdown": true,
"ShowEndDateAndYearDropdown": true,
"ShowStartEndDateTextbox": false,
"ShowMachineNameDropdown": false,
"ShowSeverityDropdown": false,
"ShowSummaryDetailRadioButton": true,
"ShowMessageTextbox": false,
"ShowIPAddressTextbox": false,
"ShowCorrelationTextbox": false,
"ShowDINTextbox": false

私は jQuery/Array/Dictionary の専門家ではないので、これについて少し助けが必要です。

前もって感謝します!心から

ヴィンス

4

3 に答える 3

2

を使用するだけで、プロパティresultJSON.RefillRequestが取得されますRefillRequest

私の理解によると、キーを渡す必要がある場合は、これを使用できます

var settings = resultJSON["RefillRequest"];
于 2013-10-02T14:28:10.037 に答える
1

そのための関数は必要ありません。json 値にアクセスするには、次のようにします。

var settings = resultJSON.Log;
//or 
var settings = resultJSON['Log'];
于 2013-10-02T14:30:00.937 に答える
1

Satpal の答えは正しいですが、これを使用して任意のキーの辞書を取得できます。

function mySuperFunction(obj, key) {
    return (key in object) ? object[key] : null;
}

そのため、呼び出すmySuperFunction(resultJSON, "RefillRequest")と が返されるresultJSON.RefillRequestnull、キーが にない場合はresultJSON.

于 2013-10-02T14:30:46.603 に答える