繁体   English   中英

如何将包含数组的json转换为javascript对象?

[英]How can I convert a json that contains array to javascript object?

我有如下的json,

{
    "Message": "{\"Errors\":[\"The message.\",\"The message.\"],\"Infos\":[\"The message.\"],\"Warnings\":[\"The message.\"],\"Successes\":[\"The message.\"]}"
}

我想将其转换为如下所示的对象,

var obj = {
    Errors : new Array(),
    Infos : new Array(),
    Warnings : new Array(),
    Successes : new Array()
}

注意:我无法在json上进行更改。

我使用了jQuery.parseJson ,但是我做不到。

您发布的内容很不寻常:它是JSON,它使用一个属性Message定义了一个对象,该属性具有包含第二个嵌入式JSON字符串的字符串值。 非常奇怪的结构。

如果您真的以JSON的形式接收到它,那么:

var outer = jQuery.parseJSON(theStringWithTheJSON);
var obj = jQuery.parseJSON(outer.Message);

现场示例 | 资源

但是,如果您通过ajax (例如)进行检索,则jQuery可能已经为您完成了第一个parseJSON ,在这种情况下,您只需要执行第二个操作即可:

jQuery.ajax({
    /* ...other parameters here...*/
    success: function(data) {
        var obj = jQuery.parseJson(data.Message);
    }
});

现场示例 | 资源

但是,如果可以的话,我可能会更改您收到的字符串的结构,这样就不会像这样进行双重编码了:

{
    "Message": {
        "Errors": [
            "The message.",
            "The message."
        ],
        "Infos": [
            "The message."
        ],
        "Warnings": [
            "The message."
        ],
        "Successes": [
            "The message."
        ]
    }
}

然后,您无需对其进行双解码,只需进行第一次解码(这可能已经为您完成了,您没有显示任何代码,因此很难说出来),并且可以使用var obj = yourVariable.Message;

现场示例 | 资源

暂无
暂无

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

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