Ну, во-первых, замените текст «должно быть x» только на это число. Затем выполните Array.sort с обратным вызовом, чтобы обратный вызов мог получить доступ к свойству объекта «Should».
(это не значит, что свойство должно начинаться с заглавной буквы, подразумевающей, что это на самом деле КЛАСС)
var data = [
{
"CatID": 15,
"Currently": "is One",
"ParentID": 16,
"Should": 1
}, {
"CatID": 17,
"Currently": "is Two",
"ParentID": 16,
"Should": 4
}, {
"CatID": 18,
"Currently": "is Three",
"ParentID": 16,
"Should": 3
}, {
"CatID": 22,
"Currently": "is Four",
"ParentID": 16,
"Should": 7
}, {
"CatID": 28,
"Currently": "is Five",
"ParentID": 16,
"Should": 8
}, {
"CatID": 92,
"Currently": "is Six",
"ParentID": 18,
"Should": 2
}, {
"CatID": 30,
"Currently": "is Seven",
"ParentID": 92,
"Should": 5
}, {
"CatID": 95,
"Currently": "is Nine",
"ParentID": 30,
"Should": 6
}
];
function shouldCompare(a, b) { return a.Should - b.Should; }
data.sort(shouldCompare);
Код (разметка): Вот и все. Массив находится в порядке «следует».