我有一个 JSON 字符串,我使用 json2.js 库将其解析为 JSON 对象。
var parsed = JSON.parse(jsonstring);
之后我做了一些魔术来向用户展示这些数据。包含的数据是几条消息。在所有浏览器中,它们都以正确的顺序排序。但是在 IE9 中,顺序是相反的。从旧消息到新消息而不是新消息。
我读到解析结果的顺序不是固定的,取决于 JavaScript 版本。所以我尝试按照我想要的方式对项目进行排序,但它不起作用。
我目前这样做:
var parsed = JSON.parse(feeds);
parsed = sortJSON(parsed, "created");
function sortJSON(data, key) {
return data.sort(function(a, b) {
var x = a[key]; var y = b[key];
return ((x < y) ? -1 : ((x > y) ? 1 : 0));
});
}
但是我在控制台中收到以下错误:
对象不支持属性或方法“排序”
所以我的猜测是,由于 JSON 对象的结构,我的排序方法不正确。所以问题是'我需要在我的排序方法中进行哪些更改才能使其正常工作?
我的 json 字符串的结构:
{"<ID>":{"text":"...","user":"...","created":"<date>",
"subject":"","url":"...","img_class":".."},
"<ID>":{"text":"...","user":"...","created":"<date>","subject":"",
"url":"...","img_class":"..."}, <MORE MESSAGES>
}