Author Topic: Get index from JSON array from Value  (Read 366 times)

cbourne

  • Newbie
  • *
  • Posts: 2
  • Karma: +0/-0
    • View Profile
Get index from JSON array from Value
« on: April 11, 2018, 09:20:22 AM »
Hi,

Im using the following powershell example. Is it possible to search for an item in an array and get an the index?

Code: [Select]
$json = New-Object Chilkat.JsonObject

$jsonStr = "{ `"id`": 1, `"name`": `"A green door`", `"tags`": [`"home`", 22, `"green`"], `"price`": 125 }"

$success = $json.Load($jsonStr)
if ($success -ne $true) {
    $($json.LastErrorText)
    exit
}

#  Get the "tags" array, which contains "home", 22, "green"
$tagsArray = $json.ArrayOf("tags")
if ($tagsArray -eq $null ) {
    $("tags member not found.")
    exit
}

#  Get the value at each array index.
#  Output will be:
#  [0] = home
#  [0] as integer = 0
#  [1] = 22
#  [1] as integer = 22
#  [2] = green
#  [2] as integer = 0

$arraySize = $tagsArray.Size

for ($i = 0; $i -le $arraySize - 1; $i++) {

    $sValue = $tagsArray.StringAt($i)

    $("[" + $i + "] = " + $sValue)

    $iValue = $tagsArray.IntAt($i)
    $("[" + $i + "] as integer = " + $iValue)

}

#  Note: The StringAt method returns the value as a string regardless of the type.

#  The IntAt method returns the value as an integer.  If the value does not convert to
#  an integer, then 0 is returned.

i.e.. get the index value of "green" from the "tags" array?