ឧបករណ៍បង្កើត JSON Patch
ប្រៀបធៀបឯកសារ JSON ពីរ ហើយទទួលបានបំណះ RFC 6902 ដែលប្រែក្លាយឯកសារទីមួយទៅជាទីពីរ។ អ្វីៗទាំងអស់ដំណើរការក្នុងកម្មវិធីរុករករបស់អ្នក។
អ្វីដែលឧបករណ៍នេះធ្វើ
វាប្រៀបធៀបឯកសារ JSON ពីរ ហើយសរសេរបញ្ជីប្រតិបត្តិការដែលប្រែក្លាយឯកសារទីមួយទៅជាទីពីរ តាមទម្រង់ដែល RFC 6902 កំណត់។ ជំនួសឱ្យការផ្ញើឯកសារទាំងមូលដើម្បីប្រាប់ថាវាលមួយបានផ្លាស់ប្តូរ អ្នកផ្ញើការផ្លាស់ប្តូរនោះផ្ទាល់។
ពេលណាគួរប្រើ
ប្រើដើម្បីសាងសង់តួនៃសំណើ PATCH ដើម្បីកត់ត្រាថាអ្វីខ្លះបានផ្លាស់ប្តូររវាងកំណែពីរនៃឯកសារកំណត់រចនាសម្ព័ន្ធ ឬដើម្បីរក្សាកំណត់ត្រាសវនកម្មដែលតូចជាងការរក្សាទុកច្បាប់ចម្លងពេញលេញទាំងអស់ច្រើន។ វាក៏ជាវិធីរហ័សដើម្បីដឹងថាឯកសារពីរដែលមើលទៅដូចគ្នា ពិតជាខុសគ្នាត្រង់ណា។
ប្រតិបត្តិការដែលវាបង្កើត
| ប្រតិបត្តិការ | អត្ថន័យ |
|---|---|
| add | បន្ថែមតម្លៃនៅកន្លែងដែលមិនទាន់មាន ឬបញ្ចូលទៅក្នុងអារេ។ |
| remove | លុបតម្លៃនៅទីតាំងនោះ។ |
| replace | សរសេរជាន់លើតម្លៃនៅទីតាំងដែលមានស្រាប់។ |
| move | ផ្លាស់ទីតម្លៃពីទីតាំងមួយទៅទីតាំងមួយទៀត។ |
| copy | ចម្លងតម្លៃទៅទីតាំងមួយទៀត។ |
| test | ពិនិត្យតម្លៃមួយ ហើយបោះបង់បំណះទាំងមូលបើវាមិនត្រូវគ្នា។ |
ឧបករណ៍នេះសរសេរតែ add, remove និង replace ប៉ុណ្ណោះ។ បីនេះគ្រប់គ្រាន់ដើម្បីបង្ហាញការផ្លាស់ប្តូរណាមួយ ហើយបំណះដែលអានបានមួយបន្ទាត់ម្តង មានតម្លៃជាងបំណះខ្លីជាងតែត្រូវគិតច្រើន។ បីផ្សេងទៀតក៏ជាផ្នែកនៃ RFC 6902 ដែរ ហើយម៉ាស៊ីនបម្រើណាដែលគោរពស្តង់ដារនឹងទទួលយកវា។
របៀបដែលផ្លូវដំណើរការ
ផ្លូវនីមួយៗជា JSON Pointer (RFC 6901)៖ ផ្លូវដែលបំបែកដោយសញ្ញាទ្រេតចាប់ពីឬសនៃឯកសារ ដែល «/address/zipCode» មានន័យថាវាល zipCode នៅក្នុង address។ ទីតាំងក្នុងអារេជាលេខ ដូច្នេះ «/skills/0» ជាធាតុទីមួយ ហើយសញ្ញាដកមានន័យថាចុងអារេ៖ «/skills/-» បន្ថែមនៅចុង។ ដោយសារសញ្ញាទ្រេតជាអ្នកបំបែក សោដែលមានសញ្ញាទ្រេតត្រូវសរសេរជា ~1 ហើយសញ្ញាទីលដាពិតប្រាកដជា ~0។
កំណត់សម្គាល់អំពីលទ្ធផល
ការប្រៀបធៀបធ្វើតាមព្យញ្ជនៈ៖ តម្លៃត្រូវបានប្រៀបធៀបម្តងមួយទីតាំង ដូច្នេះការបញ្ចូលធាតុនៅដើមអារេបង្កើត replace លើគ្រប់ធាតុបន្ទាប់ ជំនួសឱ្យការបញ្ចូលតែម្តង។ សម្រាប់អារេនៃវត្ថុដែលមានអត្តសញ្ញាណមាំមួន បំណះដែលបង្កើតពីអត្តសញ្ញាណតែងតែតូចជាងបំណះដែលបង្កើតពីទីតាំង។
របៀបបង្កើត JSON Patch
បិទភ្ជាប់ឯកសារ JSON ពីរ ហើយបង្កើតបំណះ។
- បិទភ្ជាប់ JSON ដើមនៅខាងឆ្វេង។
- បិទភ្ជាប់ JSON ដែលបានកែនៅខាងស្តាំ។
- ចុច «បង្កើត» រួចចម្លងបំណះ។
សំណួរដែលសួរញឹកញាប់
តើឧបករណ៍នេះផ្ញើទិន្នន័យរបស់ខ្ញុំទៅកន្លែងណាទេ?
ទេ។ ឯកសារទាំងពីរនៅក្នុងកម្មវិធីរុករករបស់អ្នក ហើយបំណះត្រូវបានបង្កើតនៅម៉ាស៊ីនរបស់អ្នកផ្ទាល់។
តើលទ្ធផលគោរពតាម RFC 6902 ដែរឬទេ?
បាទ/ចាស។ ប្រតិបត្តិការនីមួយៗជាវត្ថុដែលមាន op, path និង — សម្រាប់ add និង replace — value ហើយផ្លូវជា JSON Pointer តាមការកំណត់របស់ RFC 6901។
តើវារួមបញ្ចូលប្រតិបត្តិការ move និង copy ទេ?
ទេ។ វាសរសេរ add, remove និង replace ដែលគ្រប់គ្រាន់សម្រាប់ការផ្លាស់ប្តូរណាមួយ ហើយងាយអានជាងច្រើន។ ប្រតិបត្តិការ move គ្រាន់តែជា remove បន្ទាប់មក add ប៉ុណ្ណោះ។
តើខ្ញុំអនុវត្តបំណះដោយរបៀបណា?
ផ្ញើវាទៅ API ដែលទទួលយក application/json-patch+json ឬប្រើបណ្ណាល័យ៖ jsonpatch ក្នុង Python, json-patch ក្នុង JavaScript, JsonPatchDocument ក្នុង .NET, json-patch ក្នុង Java ជាដើម។
តើវាខុសពី JSON Merge Patch យ៉ាងដូចម្តេច?
JSON Merge Patch (RFC 7386) មើលទៅដូចឯកសារខ្លួនឯង ដោយ null មានន័យថា «លុប»។ នោះធ្វើឱ្យវាងាយអាន ប៉ុន្តែមិនអាចរក្សាទុក null ពិតប្រាកដ ឬកែធាតុតែមួយក្នុងអារេបានឡើយ។ JSON Patch វែងជាង តែអាចបង្ហាញអ្វីក៏បាន។
Wikipedia — JSON Patch
Wikipedia — JSON
Wikipedia — Patch (computing)
Wikipedia — Diff
Wikipedia — REST