Microsoft Azure PlayFab logo
    • Multiplayer
    • LiveOps
    • Data & Analytics
    • Add-ons
    • For Any Role

      • Engineer
      • Designer
      • Executive
      • Marketer
    • For Any Stage

      • Build
      • Improve
      • Grow
    • For Any Size

      • Solo
      • Indie
      • AAA
  • Runs on PlayFab
  • Pricing
    • Blog
    • Forums
    • Contact us
  • Sign up
  • Sign in
  • Ask a question
  • Spaces
    • PlayStream
    • Feature Requests
    • Add-on Marketplace
    • Bugs
    • API and SDK Questions
    • General Discussion
    • LiveOps
    • Topics
    • Questions
    • Articles
    • Ideas
    • Users
    • Badges
  • Home /
  • API and SDK Questions /
avatar image
Question by Dorime · Sep 06, 2021 at 06:26 AM · apisunity3ddata

Update part of a JSON

For example, in a game, I want to store a player's progress information.

This user data is stored first:

{
    "Worlds": [
        {
            "Id": 1,
            "Levels": [
                {
                    "Id": 1,
                    "Progress": 0
                },
                {
                    "Id": 2,
                    "Progress": 0
                }
            ]
        },
        {
            "Id": 2,
            "Levels": [
                {
                    "Id": 1,
                    "Progress": 0
                },
                {
                    "Id": 2,
                    "Progress": 0
                }
            ]
        }
    ]
}

When he progresses, I would like to send this information to update only the progress of World 1 - Level 1

{
    "Worlds": [
        {
            "Id": 1,
            "Levels": [
                {
                    "Id": 1,
                    "Progress": 500
                }
            ]
        }
    ]
}

Is it possible to achieve this result without having to get all the data from the server?

{
    "Worlds": [
        {
            "Id": 1,
            "Levels": [
                {
                    "Id": 1,
                    "Progress": 500  <-- value updated
                },
                {
                    "Id": 2,
                    "Progress": 0
                }
            ]
        },
        {
            "Id": 2,
            "Levels": [
                {
                    "Id": 1,
                    "Progress": 0
                },
                {
                    "Id": 2,
                    "Progress": 0
                }
            ]
        }
    ]
}
Comment

People who like this

0 Show 0
10 |1200 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

1 Reply

· Add your reply
  • Sort: 
avatar image
Best Answer

Answer by Gosen Gao · Sep 06, 2021 at 09:04 AM

To clarify, the smallest unit to update User Data is one K/V pair. The value of one K/V pair can’t be updated in parts but can only be updated by overwriting. But as a workaround, you can get all the data first, and store it locally. Every time player progresses, you can just modify part of it then call update API with it.

Comment

People who like this

0 Show 0 · Share
10 |1200 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Navigation

Spaces
  • General Discussion
  • API and SDK Questions
  • Feature Requests
  • PlayStream
  • Bugs
  • Add-on Marketplace
  • LiveOps
  • Follow this Question

    Answers Answers and Comments

    2 People are following this question.

    avatar image avatar image

    Related Questions

    How to send List to cloud script? Not a Map,How to send a list of objects using ExcuteCloudScript? (not a dictionary) 1 Answer

    Having trouble with getting invalid input parameters error when calling UpdateUserData. 1 Answer

    Playfab randomly throws ServiceUnavailable / Timeout errors. 1 Answer

    UserData object different between client and server? 1 Answer

    iOS Restore Purchase Receipt using Unity IAP 1 Answer

    PlayFab

    • Multiplayer
    • LiveOps
    • Data & Analytics
    • Runs on PlayFab
    • Pricing

    Solutions

    • For Any Role

      • Engineer
      • Designer
      • Executive
      • Marketer
    • For Any Stage

      • Build
      • Improve
      • Grow
    • For Any Size

      • Solo
      • Indie
      • AAA

    Engineers

    • Documentation
    • Quickstarts
    • API Reference
    • SDKs
    • Usage Limits

    Resources

    • Forums
    • Contact us
    • Blog
    • Service Health
    • Terms of Service
    • Attribution

    Follow us

    • Facebook
    • Twitter
    • LinkedIn
    • YouTube
    • Sitemap
    • Contact Microsoft
    • Privacy & cookies
    • Terms of use
    • Trademarks
    • Safety & eco
    • About our ads
    • © Microsoft 2020
    • Anonymous
    • Sign in
    • Create
    • Ask a question
    • Create an article
    • Post an idea
    • Spaces
    • PlayStream
    • Feature Requests
    • Add-on Marketplace
    • Bugs
    • API and SDK Questions
    • General Discussion
    • LiveOps
    • Explore
    • Topics
    • Questions
    • Articles
    • Ideas
    • Users
    • Badges