i making rest api call , getting json response in return. want highest string response.
$x = invoke-restmethod -method -uri $r
this returns
{ "results": [ { "uri": "h//foo/test.1.0.19.4.n" }, { "uri": "h://foo/test.1.0.20.6.n" }, { "uri": "h://foo/test.1.0.20.7.n" } ] }
from want extract "test.1.0.20.7.n"
, largest when compared between .19
, .20
, when compare last 1 want .7
on .6
i have been trying use
$x| select uri | sort-object uri
it prints
test... test... test...
you can leveraging "custom" sort expression blogged earlier. following sample works me:
$json = @" { "results": [ { "uri": "h://foo/test.1.0.19.4.n" }, { "uri": "h://foo/test.1.0.20.7.n" }, { "uri": "h://foo/test.1.0.20.6.n" } ] } "@ $obj = convertfrom-json $json $obj.results | sort-object -property @{expression={[int]($_.uri -replace "\d", "")}} | select -last 1
output:
uri --- h://foo/test.1.0.20.7.n
and dataset:
{ "results": [ { "uri": "h://foo/test.1.0.19.4.n" }, { "uri": "h://foo/test.1.1.5.7.n" }, { "uri": "h://foo/test.1.2.20.1.n" }, { "uri": "h://foo/test.1.0.20.7.n" }, { "uri": "h://foo/test.1.0.20.6.n" } ] }
the result is:
uri --- h://foo/test.1.2.20.1.n
Comments
Post a Comment