កន្លងមក យើងបានយកវត្ថុនៅក្នុងភាសា JS នានាមកកែច្នៃអោយទៅជាវត្ថុ JSON ដោយយកវិធីមានស្រាប់ឈ្មោះ JSON.stringify() មកប្រើ។ ក៏ប៉ុន្តែ យើងមិនបានដឹងថា បើសិនជាយើងបង្កើតផ្លាក (key) មួយមានឈ្មោះថា toJSON ដែលមានតំលៃ (value) ជាក្បួនណាមួយនៅក្នុងវត្ថុ JS ដែលត្រូវយកមកកែច្នៃ វិធី JSON.stringify() និងយកលទ្ធផលបានមកពីក្បួននោះមកកែច្នៃអោយទៅជាវត្ថុ JSON ដោយរំលងចោលនូវអ្វីៗទាំងអស់ដែលមាននៅក្នុងវត្ថុនោះ។ ពិនិត្យកម្មវិធីខាងក្រោមនេះ៖
លើសពីនេះទៀត យើងអាចប្រើប្រាស់ក្បួនណាមួយសំរាប់កែប្រែតំលៃ (value) នៅក្នុងវត្ថុដែលត្រូវយកមកកែប្រែដោយធ្វើដូចខាងក្រោមនេះ៖
ក្រៅពីការប្រើប្រាស់ក្បួនដូចខាងលើ ក្នុងការកែប្រែតំលៃរបស់វត្ថុ JS ដែលត្រូវយកមកកែច្នៃអោយទៅជាវត្ថុ JSON យើងក៏អាចប្រើប្រាស់កំរង (array) នៅក្នុងការជ្រើសររើសយកធាតុមួយចំនួនមកកែច្នៃបានដែរ។ ពិនិត្យកម្មវិធីខាងក្រោមនេះ៖
var myObj = {name: "John", toJSON: function(){return {name:"កុសល"}}, city: "New York", 1:"Number 1"};
var myJSON = JSON.stringify(myObj);
console.log(myJSON);
លើសពីនេះទៀត យើងអាចប្រើប្រាស់ក្បួនណាមួយសំរាប់កែប្រែតំលៃ (value) នៅក្នុងវត្ថុដែលត្រូវយកមកកែប្រែដោយធ្វើដូចខាងក្រោមនេះ៖
var obj = {"name":"John", "age":"39", "city":"New York"};
var text = JSON.stringify(obj, function (key, value){
if(key == "city"){
return value.toUpperCase();
}else{
return value;
}
});
console.log(text);
ក្រៅពីការប្រើប្រាស់ក្បួនដូចខាងលើ ក្នុងការកែប្រែតំលៃរបស់វត្ថុ JS ដែលត្រូវយកមកកែច្នៃអោយទៅជាវត្ថុ JSON យើងក៏អាចប្រើប្រាស់កំរង (array) នៅក្នុងការជ្រើសររើសយកធាតុមួយចំនួនមកកែច្នៃបានដែរ។ ពិនិត្យកម្មវិធីខាងក្រោមនេះ៖
var obj = { "name":"John", "age":"39", "city":"New York"};
var text = JSON.stringify(obj, ['name', 'city']);
console.log(text);














