簡體   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