asdf: filter value and print the next value
Vino
akashvino79 at gmail.com
Wed Oct 28 07:08:15 UTC 2020
Hi All,
Request your help in the below code, the logic is that fetch
the json data(Pool) from apidata1 and use that and search for
"pool" in sapidata2 and print the matched(pool) type from
apidata2.
Code:
import datacollector.GetLamaAssignment;
import std.stdio: writeln;
import asdf: parseJson;
import std.algorithm;
void main()
{
string[][string] sysinfo;
string apidata1 = `{"items":
[
{"name":"T01","hostname":"test01","pool":"Development"},
{"name":"T02","hostname":"test02","pool":"Quality"},
{"name":"T03","hostname":"test03","pool":"Production"}
]
}`;
string apidata2 = `{"items":
[
{"pool":"Devlopment","stack":{"type":"S"}},
{"pool":"Quality","stack":{"type":"M"}},
{"pool":"Production","stack":{"type":"L"}}
]
}`;
auto jv1 = parseJson(apidata1);
foreach(j; jv1["items"].byElement()){
string Pool = j["pool"].get!string("default");
sysinfo["Type"] ~= parseJson(apidata2)
.filter!(object => object ["items", "pool"]
.byElement
.canFind(Pool))
.each!writeln(["stack","type"]);
}
writeln(sysinfo);
}
From,
Vino.B
More information about the Digitalmars-d-learn
mailing list