繁体   English   中英

如何从键/值JSON对象获取值

[英]How to get values from a Key/Value JSON object

当前正在使用asp.net mvc 4应用程序。

我有一个强类型的视图。

在视图内部,我有以下内容:

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

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

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

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

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专家。

提前致谢! 诚挚

文斯

只需使用resultJSON.RefillRequest ,它将为您获取RefillRequest属性

根据我的理解,如果您需要传递密钥,可以使用它

var settings = resultJSON["RefillRequest"];

无需功能即可。 要访问json值,您可以。

var settings = resultJSON.Log;
//or 
var settings = resultJSON['Log'];

尽管Satpal的答案是正确的,但您可以使用它来检索任何键的字典:

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

因此,呼吁mySuperFunction(resultJSON, "RefillRequest")将返回resultJSON.RefillRequest ,或null ,如果关键是没有resultJSON

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM