Thread overview | |||||||
---|---|---|---|---|---|---|---|
|
October 06, 2015 How to check if JSONValue of type object has a key? | ||||
---|---|---|---|---|
| ||||
I'm using std.json for parsing json. I need to check if a specific string key is in JSONValue.object. The first thing I tried was: JSONValue root = parseJSON(text); if(root["key"].isNull == false) { //do stuff with root["key"] } But that code doesn't work, because calling root["key"] will throw an exception of key not fount if "key" isn't there. I need some method `root.contains("key")` method to check if the object has a key. Thanks in advance! |
October 06, 2015 Re: How to check if JSONValue of type object has a key? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Borislav Kosharov | On Tue, Oct 06, 2015 at 08:28:46PM +0000, Borislav Kosharov via Digitalmars-d-learn wrote:
> JSONValue root = parseJSON(text);
> if(root["key"].isNull == false) {
try
if("key" in root) {
// it is there
} else {
// it is not there
}
you can also do
if("key" !in root) {}
|
October 06, 2015 Re: How to check if JSONValue of type object has a key? | ||||
---|---|---|---|---|
| ||||
Posted in reply to via Digitalmars-d-learn | On Tuesday, 6 October 2015 at 20:44:30 UTC, via Digitalmars-d-learn wrote:
> On Tue, Oct 06, 2015 at 08:28:46PM +0000, Borislav Kosharov via Digitalmars-d-learn wrote:
>> JSONValue root = parseJSON(text);
>> if(root["key"].isNull == false) {
>
> try
>
> if("key" in root) {
> // it is there
> } else {
> // it is not there
> }
>
>
> you can also do
>
> if("key" !in root) {}
Additionally, just like associative arrays, if you need to access the value, you can get a pointer to it with the in operator (and if the key doesn't exist, it will return a null pointer).
const(JSONValue)* p = "key" in root;
if (p)
{
// key exists, do something with p or *p
}
else
{
// key does not exist
}
|
October 07, 2015 Re: How to check if JSONValue of type object has a key? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Fusxfaranto | Am Tue, 06 Oct 2015 21:39:28 +0000 schrieb Fusxfaranto <fusxfaranto@gmail.com>: > Additionally, just like associative arrays, if you need to access the value, you can get a pointer to it with the in operator (and if the key doesn't exist, it will return a null pointer). > > const(JSONValue)* p = "key" in root; > if (p) > { > // key exists, do something with p or *p > } > else > { > // key does not exist > } And you could go further and write if (auto p = "key" in root) { // key exists, do something with p or *p } else { // key does not exist } -- Marco |
October 08, 2015 Re: How to check if JSONValue of type object has a key? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Borislav Kosharov | Thanks guys that was I was looking for! |
Copyright © 1999-2021 by the D Language Foundation