The lookupByPath method returns the value at the specified path in the JSON object.
NOTE: This method does not make a copy of the value, so modifying the returned value affects the original object.
lookupByPath( path )
| Argument | Description |
|---|---|
path
|
(string) The path of the value to return. Construct the path from array indexes and object attribute names, and use a slash (/) as the separator. If an object attribute name includes a slash, then escape the slash with a backslash, for example "one\\/two". Notice that you must also escape a backslash with another backslash. |
(LuaJsonValue) Returns the value that exists at the specified path, or nil if the specified path does not exist.
myJsonObject = LuaJsonObject:new()
myJsonObject:assign( {
attr1=LuaJsonObject:new( { n=42, x=5 } ),
attr2=LuaJsonArray:new( 1, 2, "three" ),
} )
print ( myJsonObject:lookupByPath("attr2/2"):value() )
-- three (LuaJsonArrays are zero-indexed)
-- Modifying the returned value changes the original object
local lookup_attr = myJsonObject:lookupByPath("attr1"):object()
lookup_attr:assign("y",3)
print (myJsonObject:string())
-- {"attr1":{"n":42,"x":5,"y":3},"attr2":[1,2,"three"]}