Я использую службу RESTful WebAPI для возврата JSON с гиперссылками Hypermedia, а затем попытался использовать сопоставление KnockoutJS для декодирования в модели представления, и он продолжает терпеть неудачу, хотя не понимаю почему. Мне нужно вручную разобрать стробированный JSON, что означает, что мой клиент теперь стал объектом, исключив гибкость с решением, которое я получил после.Использование сопоставления нокаутом с JSON, содержащим ссылки Hypermedia
В упрощенном примере ниже приводится информация об одном ресторане с несколькими действиями либо в книге, либо в электронной почте.
Вот JSON
{
"Id": 1,
"Name": "Kings Head",
"NickName": "Kings",
"_links": {
"book": {
"href": "/resturant/1/book",
"title": "Book"
},
"email": {
"href": "/resturant/1/email",
"title": "Email"
},
"self": {
"href": "/resturant/1"
}
}
}
Код, который работает так:
var viewModel = {
Name: ko.observable(),
NickName: ko.observable()
};
$.getJSON('http://localhost:8080/resturants/1', function (jsonResult) {
var str = JSON.stringify(jsonResult);
var parsed = JSON.parse(str);
viewModel.Name = (parsed.Name);
viewModel.NickName = (parsed.NickName);
ko.applyBindings(viewModel);
})
Если я пытаюсь использовать:
viewModel = ko.mapping.fromJS(jsonResult);
он терпит неудачу.
Любая помощь приветствуется.
Большое спасибо,
Shaun
Какая ошибка дает вам, когда она терпит неудачу? Это должно появиться в консоли отладчика. Пробовали ли вы установить точку останова в обратном вызове и вручную проверить 'jsonResult', чтобы убедиться, что это правильные данные? – scaryman