Skip to content

support jsonpointer format as rfc6901 #71

Open

Description

@gcp85163

Hi,
Does sonic-cpp support merge-patch easily?
For example : { op: replace, patch : "Object/0/New_object", value : "123" }

If use json_pointer:
sonic_json::Node* node2 = doc.AtPointer(PointerType({"Object", 0, "New_object"}));
This doesn't format well. transfer patch : "Object/0/New_object" to {"Object", 0, "New_object"}

Activity

  1. liuq19 commented on May 24, 2023

    @liuq19
    Collaborator

    Are you discuss about jsonpointer rfc, for example, "/Object/0/New_object" follows jsonpointer rfc.

    We will support the RFC in the future.

    However, parsing “Object/0/New_object” hurts performance, and it can be easily rewritten as {"Object", 0, "New_object"}, so, we suggest using the existing format like {"Object", 0, "New_object"}.

  2. gcp85163 commented on May 24, 2023

    @gcp85163
    Author

    Are you discuss about jsonpointer rfc, for example, "/Object/0/New_object" follows jsonpointer rfc.

    We will support the RFC in the future.

    However, parsing “Object/0/New_object” hurts performance, and it can be easily rewritten as {"Object", 0, "New_object"}, so, we suggest using the existing format like {"Object", 0, "New_object"}.

    Yes, I am talking about jsonpointer rfc.

    For current code, How to rewritten as {"Object", 0, "New_object"}? just split string by '/' ? But how to handle string to int automatic?
    Can you give me some example?

  3. liuq19 commented on May 25, 2023

    @liuq19
    Collaborator

    This is not just a matter of splitting strings by '/', you need to refer to the RFC to distinguish the escape characters. and you can refer to the rapidjson.

  4. changed the title [-]Does it support json merge patch.[/-] [+]support jsonpointer format as rfc6901[/+] on May 25, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions