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
    }
}

我的目标是拥有一个可以传递Key诸如“ RefillRequest ”之类的函数:

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

反过来,settings这将是一个字典,仅包含基于我传入的键“ RefillRequest ”的相关值。

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.RefillRequest,或者null如果密钥不在resultJSON.

于 2013-10-02T14:30:46.603 回答