I got a problem with JSON.parse the object the return from function server.GetUserReadOnlyData.
It seem like I can't access any property or field inside an object that parse from function GetUserReadOnlyData.
Assume that I have Player Data(Title) like this
Here the code that I reproduce.
handlers.CheckIn = function(args) { var result = {}; var GetUserReadOnlyDataRequest = { "PlayFabId": currentPlayerId, "Keys": ["CheckInTracker"] }; var GetUserReadOnlyDataResponse = server.GetUserReadOnlyData(GetUserReadOnlyDataRequest); var tracker = {}; if (GetUserReadOnlyDataResponse.Data.hasOwnProperty("CheckInTracker")) { tracker = JSON.parse(GetUserReadOnlyDataResponse.Data["CheckInTracker"].Value); log.info("tracker"); log.info(tracker); log.info("get field by ."); log.info(tracker.LoginStreak); log.info(tracker.NextEligibleGrant); log.info("get field by []"); log.info(tracker["LoginStreak"]); log.info(tracker["NextEligibleGrant"]); log.info("end tracker"); } return result; } // The log in this case would be // tracker // {"LoginStreak":1,"NextEligibleGrant":1490090129539} // get field by . // null // null // get field by [] // null // null // end tracker
And when i test it like this.
handlers.TestJsObject = function(args) { var result = {}; var tracker = JSON.parse("{\"LoginStreak\":1,\"NextEligibleGrant\":1490090129539}"); log.info("tracker"); log.info(tracker); log.info("get field by ."); log.info(tracker.LoginStreak); log.info(tracker.NextEligibleGrant); log.info("get field by []"); log.info(tracker["LoginStreak"]); log.info(tracker["NextEligibleGrant"]); log.info("end tracker"); return result; } // The log in this case would be // tracker // {"LoginStreak":1,"NextEligibleGrant":1490090129539} // get field by . // 1 // 1490090129539 // get field by [] // 1 // 1490090129539 // end tracker
I have no idea what going on with the object that receive from PlayFab database. Please help.