knock out mapping plugin updating singe item in array
===

I have an issue trying to update an item as part of an observableArray using the mapping plugin.

I have the following code

    accounts.list = ko.mapping.fromJS(@(Html.Raw(Model.AccountsJSON)));
I have this bound to a table using 

    <tbody data-bind="foreach: list"> ... </tbody>
This all works correctly, I then have the following function

    $('#datatable').delegate(".cancelLock", "click", function() {
            var item = ko.contextFor(this).$data;
            var param = {AccountNumber : item.AccountNumber()}
            $.post('@Url.Action("cancellock","accounts")',param,function(result){
                ko.mapping.fromJSON(result,item);
                if(accounts.lockeditem() == item){
                    accounts.lockeditem(0);
                }
            });
        });

the line `ko.mapping.fromJSON(result,item);` causes no errors, and the function continues, however it does not cause the observable to update.

I've tried changing the code to `ko.mapping.fromJSON(result,accounts.list);` (and updating my controller to return the full list) and this works correctly - the problem being that I don't want to update the entire table, I "simply" want to revert 'item' back to it's original state.

I've also tried using `item.Updated(result.Updated);` (where updated is one of the properties of the object) and this works as expected however I'd rather not manually call this on every property unless I have to.

is it possible to use `ko.mapping.fromJSON(result,item);` (or some variation of)? Am I doing something stupidly wrong? 

Thanks in advance.