2017-03-24 10 views
1

オブジェクトのコレクションにパッチを当てる最良の方法を理解しようとしています。私はいくつかのオブジェクトの並べ替え順序を変更しようとしており、jsonpatchが正しい方法かもしれないと考えていました。私のオブジェクトは、次のようになります。jsonpatchオブジェクトIDで配列オブジェクトを更新するパス

[ 
    { 
    "op": "replace", 
    "path": "/1/SortOrder", 
    "value": 2 
    }, 
    { 
    "op": "replace", 
    "path": "/0/SortOrder", 
    "value": 1 
    }, 
    { 
    "op": "replace", 
    "path": "/2/SortOrder", 
    "value": 3 
    } 
] 

は、私は何をできるようにしたいことは次のとおりです。

[ 
    { 
    "ID": "100", 
    "FirstName": "John", 
    "LastName": "Smith", 
    "Email": "[email protected]", 
    "SortOrder": 1 
    }, 
    { 

    "ID": "125", 
    "FirstName": "John", 
    "LastName": "Doe", 
    "Email": "[email protected]", 
    "SortOrder": 3 
    }, 
    { 

    "ID": "50", 
    "FirstName": "james", 
    "LastName": "johnson", 
    "Email": "[email protected]", 
    "SortOrder": 2 
    }, 
] 

私はパッチ要求は次のようにリクエストをjsonpatch使用して、コレクション内の複数のオブジェクトを更新することを可能にするエンドポイントを作成しましたjsonpatchパスでIDプロパティを使用します。それは私の現在のオブジェクト構造で可能ですか?私はこのようなパッチ要求を行うことができるようにしなければならないだろうか

[ 
    { 
    "op": "replace", 
    "path": "/125/SortOrder", 
    "value": 2 
    }, 
    { 
    "op": "replace", 
    "path": "/100/SortOrder", 
    "value": 1 
    }, 
    { 
    "op": "replace", 
    "path": "/50/SortOrder", 
    "value": 3 
    } 
] 

:それは次のようになりますか?

+0

私が尋ねていることをする唯一の方法は、配列ではなく辞書を使うことです。私が今実行している問題は、キー値がguidであり、.NETのjsonpatch実装がguidキーのファンではないようです。 – JoAMoS

答えて

2

Json pointer RFCに基づいて、配列から要素を選択する方法はありません。 JSON PatchはJSON Pointerを使用しているので、あなたは不運です。

JSONパッチの人々は、選択言語のためにJSON Path、またはこれに類するものを選択していないのは残念です。

関連する問題