RESTful WebAPI サービスを使用してハイパーメディア リンクを含む JSON を返し、KnockoutJS マッピングを使用してビュー モデルにデコードしようとしましたが、理由はわかりませんが失敗し続けます。文字列化された JSON を手動で解析する必要があります。これは、クライアントがオブジェクト固有になり、求めていたソリューションの柔軟性が失われたことを意味します。
以下の単純化された例では、1 つのレストランの詳細を返し、予約またはメールのいずれかのアクションをいくつか実行します。
これが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);
それは失敗します。
どんな助けでも感謝します。
どうもありがとう、
ショーン