Re: How to detect whethere if a JSON node exists

2020-04-12 Thread Adnan via Digitalmars-d-learn

On Monday, 13 April 2020 at 02:22:33 UTC, Adam D. Ruppe wrote:

On Monday, 13 April 2020 at 02:20:39 UTC, Adnan wrote:
Now in the above inner loop getStr(node["com"].str()) crashes 
in runtime if an array does not contain "com" node. I want to 
avoid that. How should I proceed?


Try:

if("com" in node) {

}


Came back here to say that I found exactly this solution. Thanks.


How to detect whethere if a JSON node exists

2020-04-12 Thread Adnan via Digitalmars-d-learn
In the following code, I want to process an json array (returned 
by the value of "posts") that might or might not have "com" key. 
If a "com" key does not exist, I want to ignore that item in the 
json array.


uint[string] wordTable;

const auto j = parseJSON(get(link));
foreach (node; j["posts"].array()) {
import std.stdio : writeln;
import std.utf : decode;

import std.algorithm: splitter;
		foreach(word; getStr(node["com"].str()).splitter(' ')) { // 
here!

if (word != "") wordTable.require(word, 0)++;
}
}

Now in the above inner loop getStr(node["com"].str()) crashes in 
runtime if an array does not contain "com" node. I want to avoid 
that. How should I proceed?


Re: How to detect whethere if a JSON node exists

2020-04-12 Thread Adam D. Ruppe via Digitalmars-d-learn

On Monday, 13 April 2020 at 02:20:39 UTC, Adnan wrote:
Now in the above inner loop getStr(node["com"].str()) crashes 
in runtime if an array does not contain "com" node. I want to 
avoid that. How should I proceed?


Try:

if("com" in node) {

}