我喜欢下面的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 ,但我做不到。
答案 0 :(得分:3)
你发布的内容很不寻常:它是JSON定义一个具有单个属性Message
的对象,它具有包含第二个嵌入式JSON字符串的字符串值。非常奇怪的结构。
如果你真的以JSON的身份接收它,那么:
var outer = jQuery.parseJSON(theStringWithTheJSON);
var obj = jQuery.parseJSON(outer.Message);
但是如果你通过ajax
(例如)检索它,jQuery可能已经为你做了第一个parseJSON
,在这种情况下你只需要做第二点:< / p>
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."
]
}
}
然后你不需要对它进行双重解码,只需要第一次解码(这可能已经为你完成,你没有显示任何代码,因此很难说)是必要的,你可以使用{{ 1}}。