Help(string(JSON)): Clarify that some modes can have zero members/indices

This commit is contained in:
Kyle Edwards
2025-12-16 10:19:49 -05:00
parent 06e6f1e69f
commit 1eb5ea3a64
2 changed files with 24 additions and 4 deletions

View File

@@ -46,7 +46,10 @@ Synopsis
`JSON`_
string(JSON <out-var> [ERROR_VARIABLE <error-var>]
{`GET <JSON-GET_>`__ | `GET_RAW <JSON-GET-RAW_>`__ | `TYPE <JSON-TYPE_>`__ | `LENGTH <JSON-LENGTH_>`__ | `REMOVE <JSON-REMOVE_>`__}
{`GET <JSON-GET_>`__ | `GET_RAW <JSON-GET-RAW_>`__ | `TYPE <JSON-TYPE_>`__ | `LENGTH <JSON-LENGTH_>`__}
<json-string> [<member|index> ...])
string(JSON <out-var> [ERROR_VARIABLE <error-var>]
`REMOVE <JSON-REMOVE_>`__
<json-string> <member|index> [<member|index> ...])
string(JSON <out-var> [ERROR_VARIABLE <error-var>]
`MEMBER <JSON-MEMBER_>`__ <json-string>
@@ -551,7 +554,7 @@ string is passed as a single argument even if it contains semicolons.
.. signature::
string(JSON <out-var> [ERROR_VARIABLE <error-variable>]
GET <json-string> <member|index> [<member|index> ...])
GET <json-string> [<member|index> ...])
:target: JSON-GET
Get an element from ``<json-string>`` at the location given
@@ -563,7 +566,7 @@ string is passed as a single argument even if it contains semicolons.
.. signature::
string(JSON <out-var> [ERROR_VARIABLE <error-variable>]
GET_RAW <json-string> <member|index> [<member|index> ...])
GET_RAW <json-string> [<member|index> ...])
:target: JSON-GET-RAW
Get an element from ``<json-string>`` at the location given
@@ -573,7 +576,7 @@ string is passed as a single argument even if it contains semicolons.
.. signature::
string(JSON <out-var> [ERROR_VARIABLE <error-variable>]
TYPE <json-string> <member|index> [<member|index> ...])
TYPE <json-string> [<member|index> ...])
:target: JSON-TYPE
Get the type of an element in ``<json-string>`` at the location

View File

@@ -120,6 +120,17 @@ if(result)
message(SEND_ERROR "Output did not match expected: FALSE actual: ${result}")
endif()
string(JSON result GET "\"Hello\"")
assert_strequal("${result}" Hello)
string(JSON result GET "5")
assert_strequal("${result}" 5)
string(JSON result GET "null")
assert_strequal("${result}" "")
string(JSON result ERROR_VARIABLE error GET "{}")
assert_json_equal("${error}" "${result}" "{}")
string(JSON result ERROR_VARIABLE error GET "[]")
assert_json_equal("${error}" "${result}" "[]")
string(JSON result ERROR_VARIABLE error GET "${json1}" foo)
assert_strequal_error("${result}" "bar" "${error}")
@@ -233,6 +244,12 @@ string(JSON result TYPE "${json1}" types array)
assert_strequal("${result}" ARRAY)
string(JSON result TYPE "${json1}" types object)
assert_strequal("${result}" OBJECT)
string(JSON result TYPE "null")
assert_strequal("${result}" NULL)
string(JSON result TYPE "5")
assert_strequal("${result}" NUMBER)
string(JSON result TYPE "\"Hello\"")
assert_strequal("${result}" STRING)
# Test LENGTH
string(JSON result ERROR_VARIABLE error LENGTH "${json1}")