Blame doc/html/json__pointer_8h.html

Packit Service def718
Packit Service def718
<html xmlns="http://www.w3.org/1999/xhtml">
Packit Service def718
<head>
Packit Service def718
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
Packit Service def718
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
Packit Service def718
<meta name="generator" content="Doxygen 1.8.8"/>
Packit Service def718
<title>json-c: json_pointer.h File Reference</title>
Packit Service def718
<link href="tabs.css" rel="stylesheet" type="text/css"/>
Packit Service def718
<script type="text/javascript" src="jquery.js"></script>
Packit Service def718
<script type="text/javascript" src="dynsections.js"></script>
Packit Service def718
<link href="doxygen.css" rel="stylesheet" type="text/css" />
Packit Service def718
</head>
Packit Service def718
<body>
Packit Service def718
Packit Service def718
Packit Service def718
Packit Service def718
 
Packit Service def718
 
Packit Service def718
  
Packit Service def718
   
json-c
Packit Service def718
    0.13.1
Packit Service def718
   
Packit Service def718
  
Packit Service def718
 
Packit Service def718
 
Packit Service def718
Packit Service def718
Packit Service def718
Packit Service def718
Packit Service def718
  
Packit Service def718
    
    Packit Service def718
          
  • Main Page
  • Packit Service def718
          
  • Related Pages
  • Packit Service def718
          
  • Data Structures
  • Packit Service def718
          
  • Files
  • Packit Service def718
        
    Packit Service def718
      
    Packit Service def718
      
    Packit Service def718
        
      Packit Service def718
            
    • File List
    • Packit Service def718
            
    • Globals
    • Packit Service def718
          
      Packit Service def718
        
      Packit Service def718
      Packit Service def718
      Packit Service def718
        
      Packit Service def718
      Functions  
      Packit Service def718
        
      Packit Service def718
      json_pointer.h File Reference
      Packit Service def718
      Packit Service def718
      Packit Service def718
      Packit Service def718

      JSON Pointer (RFC 6901) implementation for retrieving objects from a json-c object tree.

      Packit Service def718
      More...

      Packit Service def718
      Packit Service def718

      Packit Service def718
      Functions
      Packit Service def718
      int json_pointer_get (struct json_object *obj, const char *path, struct json_object **res)
      Packit Service def718
       
      Packit Service def718
      int json_pointer_getf (struct json_object *obj, struct json_object **res, const char *path_fmt,...)
      Packit Service def718
       
      Packit Service def718
      int json_pointer_set (struct json_object **obj, const char *path, struct json_object *value)
      Packit Service def718
       
      Packit Service def718
      int json_pointer_setf (struct json_object **obj, struct json_object *value, const char *path_fmt,...)
      Packit Service def718
       
      Packit Service def718
      Packit Service def718

      Detailed Description

      Packit Service def718

      JSON Pointer (RFC 6901) implementation for retrieving objects from a json-c object tree.

      Packit Service def718

      Function Documentation

      Packit Service def718
      Packit Service def718
      Packit Service def718
      Packit Service def718
            
      Packit Service def718
              
      Packit Service def718
                int json_pointer_get 
      Packit Service def718
                (
      Packit Service def718
                struct json_object
      Packit Service def718
                obj, 
      Packit Service def718
              
      Packit Service def718
              
      Packit Service def718
                
      Packit Service def718
                
      Packit Service def718
                const char * 
      Packit Service def718
                path, 
      Packit Service def718
              
      Packit Service def718
              
      Packit Service def718
                
      Packit Service def718
                
      Packit Service def718
                struct json_object ** 
      Packit Service def718
                res 
      Packit Service def718
              
      Packit Service def718
              
      Packit Service def718
                
      Packit Service def718
                )
      Packit Service def718
                
      Packit Service def718
              
      Packit Service def718
            
      Packit Service def718
      Packit Service def718

      Retrieves a JSON sub-object from inside another JSON object using the JSON pointer notation as defined in RFC 6901 https://tools.ietf.org/html/rfc6901

      Packit Service def718

      The returned JSON sub-object is equivalent to parsing manually the 'obj' JSON tree ; i.e. it's not a new object that is created, but rather a pointer inside the JSON tree.

      Packit Service def718

      Internally, this is equivalent to doing a series of 'json_object_object_get()' and 'json_object_array_get_idx()' along the given 'path'.

      Packit Service def718

      Note that the 'path' string supports 'printf()' type arguments, so, whatever is added after the 'res' param will be treated as an argument for 'path' Example: json_pointer_get(obj, "/foo/%d/%s", &res, 0, bar) This means, that you need to escape '' with '%' (just like in printf())

      Packit Service def718
      Parameters
      Packit Service def718
        
      Packit Service def718
          objthe json_object instance/tree from where to retrieve sub-objects 
      Packit Service def718
          patha (RFC6901) string notation for the sub-object to retrieve 
      Packit Service def718
          resa pointer where to store a reference to the json_object associated with the given path
      Packit Service def718
        
      Packit Service def718
        
      Packit Service def718
      Packit Service def718
      Returns
      negative if an error (or not found), or 0 if succeeded
      Packit Service def718
      Packit Service def718
      Packit Service def718
      Packit Service def718
      Packit Service def718
      Packit Service def718
      Packit Service def718
            
      Packit Service def718
              
      Packit Service def718
                int json_pointer_getf 
      Packit Service def718
                (
      Packit Service def718
                struct json_object
      Packit Service def718
                obj, 
      Packit Service def718
              
      Packit Service def718
              
      Packit Service def718
                
      Packit Service def718
                
      Packit Service def718
                struct json_object ** 
      Packit Service def718
                res, 
      Packit Service def718
              
      Packit Service def718
              
      Packit Service def718
                
      Packit Service def718
                
      Packit Service def718
                const char * 
      Packit Service def718
                path_fmt, 
      Packit Service def718
              
      Packit Service def718
              
      Packit Service def718
                
      Packit Service def718
                
      Packit Service def718
                 
      Packit Service def718
                ... 
      Packit Service def718
              
      Packit Service def718
              
      Packit Service def718
                
      Packit Service def718
                )
      Packit Service def718
                
      Packit Service def718
              
      Packit Service def718
            
      Packit Service def718
      Packit Service def718

      This is a variant of 'json_pointer_get()' that supports printf() style arguments.

      Packit Service def718

      Example: json_pointer_getf(obj, res, "/foo/%d/%s", 0, bak) This also means that you need to escape '' with '%' (just like in printf())

      Packit Service def718

      Please take into consideration all recommended 'printf()' format security aspects when using this function.

      Packit Service def718
      Parameters
      Packit Service def718
        
      Packit Service def718
          objthe json_object instance/tree to which to add a sub-object 
      Packit Service def718
          resa pointer where to store a reference to the json_object associated with the given path 
      Packit Service def718
          path_fmta printf() style format for the path
      Packit Service def718
        
      Packit Service def718
        
      Packit Service def718
      Packit Service def718
      Returns
      negative if an error (or not found), or 0 if succeeded
      Packit Service def718
      Packit Service def718
      Packit Service def718
      Packit Service def718
      Packit Service def718
      Packit Service def718
      Packit Service def718
            
      Packit Service def718
              
      Packit Service def718
                int json_pointer_set 
      Packit Service def718
                (
      Packit Service def718
                struct json_object ** 
      Packit Service def718
                obj, 
      Packit Service def718
              
      Packit Service def718
              
      Packit Service def718
                
      Packit Service def718
                
      Packit Service def718
                const char * 
      Packit Service def718
                path, 
      Packit Service def718
              
      Packit Service def718
              
      Packit Service def718
                
      Packit Service def718
                
      Packit Service def718
                struct json_object
      Packit Service def718
                value 
      Packit Service def718
              
      Packit Service def718
              
      Packit Service def718
                
      Packit Service def718
                )
      Packit Service def718
                
      Packit Service def718
              
      Packit Service def718
            
      Packit Service def718
      Packit Service def718

      Sets JSON object 'value' in the 'obj' tree at the location specified by the 'path'. 'path' is JSON pointer notation as defined in RFC 6901 https://tools.ietf.org/html/rfc6901

      Packit Service def718

      Note that 'obj' is a double pointer, mostly for the "" (empty string) case, where the entire JSON object would be replaced by 'value'. In the case of the "" path, the object at '*obj' will have it's refcount decremented with 'json_object_put()' and the 'value' object will be assigned to it.

      Packit Service def718

      For other cases (JSON sub-objects) ownership of 'value' will be transferred into '*obj' via 'json_object_object_add()' & 'json_object_array_put_idx()', so the only time the refcount should be decremented for 'value' is when the return value of 'json_pointer_set()' is negative (meaning the 'value' object did not get set into '*obj').

      Packit Service def718

      That also implies that 'json_pointer_set()' does not do any refcount incrementing. (Just that single decrement that was mentioned above).

      Packit Service def718

      Note that the 'path' string supports 'printf()' type arguments, so, whatever is added after the 'value' param will be treated as an argument for 'path' Example: json_pointer_set(obj, "/foo/%d/%s", value, 0, bak) This means, that you need to escape '' with '%' (just like in printf())

      Packit Service def718
      Parameters
      Packit Service def718
        
      Packit Service def718
          objthe json_object instance/tree to which to add a sub-object 
      Packit Service def718
          patha (RFC6901) string notation for the sub-object to set in the tree 
      Packit Service def718
          valueobject to set at path
      Packit Service def718
        
      Packit Service def718
        
      Packit Service def718
      Packit Service def718
      Returns
      negative if an error (or not found), or 0 if succeeded
      Packit Service def718
      Packit Service def718
      Packit Service def718
      Packit Service def718
      Packit Service def718
      Packit Service def718
      Packit Service def718
            
      Packit Service def718
              
      Packit Service def718
                int json_pointer_setf 
      Packit Service def718
                (
      Packit Service def718
                struct json_object ** 
      Packit Service def718
                obj, 
      Packit Service def718
              
      Packit Service def718
              
      Packit Service def718
                
      Packit Service def718
                
      Packit Service def718
                struct json_object
      Packit Service def718
                value, 
      Packit Service def718
              
      Packit Service def718
              
      Packit Service def718
                
      Packit Service def718
                
      Packit Service def718
                const char * 
      Packit Service def718
                path_fmt, 
      Packit Service def718
              
      Packit Service def718
              
      Packit Service def718
                
      Packit Service def718
                
      Packit Service def718
                 
      Packit Service def718
                ... 
      Packit Service def718
              
      Packit Service def718
              
      Packit Service def718
                
      Packit Service def718
                )
      Packit Service def718
                
      Packit Service def718
              
      Packit Service def718
            
      Packit Service def718
      Packit Service def718

      This is a variant of 'json_pointer_set()' that supports printf() style arguments.

      Packit Service def718

      Example: json_pointer_setf(obj, value, "/foo/%d/%s", 0, bak) This also means that you need to escape '' with '%' (just like in printf())

      Packit Service def718

      Please take into consideration all recommended 'printf()' format security aspects when using this function.

      Packit Service def718
      Parameters
      Packit Service def718
        
      Packit Service def718
          objthe json_object instance/tree to which to add a sub-object 
      Packit Service def718
          valueobject to set at path 
      Packit Service def718
          path_fmta printf() style format for the path
      Packit Service def718
        
      Packit Service def718
        
      Packit Service def718
      Packit Service def718
      Returns
      negative if an error (or not found), or 0 if succeeded
      Packit Service def718
      Packit Service def718
      Packit Service def718
      Packit Service def718
      Packit Service def718
      Packit Service def718

      <address class="footer"><small>
      Packit Service def718
      Generated on Mon Mar 5 2018 23:17:09 for json-c by  
      Packit Service def718
      doxygen
      Packit Service def718
       1.8.8
      Packit Service def718
      </small></address>
      Packit Service def718
      </body>
      Packit Service def718
      </html>